我正在研究PostgreSQL中的一个巨大的数据库。 (对不起,如果这是不正确的编辑,我已经试了几个小时,仍然在努力)按值组分组
这是用于我的查询:(表user_activities)与一些示例数据的结构的一部分。
+---------------------+---------------------+---------------------+
| user_id | activity | operation |
+---------------------+---------------------+---------------------+
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 4 | 1 | 4 |
| 5 | 1 | 4 |
| 5 | 1 | 5 |
| 6 | 3 | 1 |
| 6 | 3 | 1 |
| 6 | 3 | 2 |
| 7 | 3 | 3 |
| 8 | 3 | 4 |
| 8 | 3 | 5 |
+---------------------+---------------------+---------------------+
,这是我想要的输出:
+---------------------+---------------------+---------------------+
| count(user_id) | activity | operation |
+---------------------+---------------------+---------------------+
| 4 | 1 | 1,2 |
| 6 | 1 | 3,4,5 |
| 6 | 3 | 1,2,3,4,5 |
+---------------------+---------------------+---------------------+
我需要统计USER_ID运营值的每个活动和组。所以我需要在活动为1或3时按活动进行分组(已完成WHERE activity IN (1,3)
)。但我也需要按操作分组。问题是每一组操作都会有超过1个值。操作可以是1,2,3,4和5.我想连接1,2的组和3,4,5的组。但是,这并不是全部...
如果我按手术分组,那么每个活动都会有5组。我需要为活动1(已指定组)设置2个组,并且只有一个组具有所有操作值(如果活动为3)。
这可能吗?
编辑: 我现在无法检查答案,我希望明天能够。因此,我会为我的投票和答复提供答案,谢谢你的帮助。
我认为你应该编辑你的问题,并提供样本数据和期望的结果(说明你在找什么)以及你现在有的查询(帮助其他人编写查询)。 –
@GordonLinoff好吧,给我一分钟,编辑 – AleOtero93
你可以使用tablefunc扩展吗? – dtelaroli