如果您能为一个包含复杂子查询的sql查询提供帮助,将不胜感激

jchrr9hc  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(268)

以下是场景:
我需要提取特定id的事件组合,并对组合的顺序进行排序
数据如下:

EventId AppId
1   100
2   100
3   100
1   101
2   101
3   102
1   102
2   103
3   104
1   105
2   106
3   106
1   107
2   107
3   107
1   108
2   108
3   109
1   110
2   110
3   112
1   111
2   111
3   113

结果应该是这样的

COMBINATIONS | COUNT

1, 2, 3      |  15
1, 2         |  13
1, 3         |  10
1            |  9
2            |  7
3            |  5

(不是上面列表中的精确计数)
如何组合查询以获得上述结果。
提前谢谢!

nnt7mjpx

nnt7mjpx1#

如果我理解正确,您可以使用两个聚合级别:

select events, count(*) as cnt
from (select appid,
             string_agg(event_id, ',') within group (order by event_id) as events
      from TestGroup t
      group by appid
     ) a
group by events;

相关问题