Был бы признателен за помощь в одном запросе SQL со сложным подзапросом - PullRequest
0 голосов
/ 01 августа 2020

Вот сценарий:

Мне нужно извлечь комбинации событий с определенным идентификатором и отсортировать порядок комбинаций

Вот данные:

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

(Неточное количество из приведенного выше списка)

Как составить запрос для получения указанного выше результата.

Заранее спасибо!

1 Ответ

0 голосов
/ 02 августа 2020

Если я правильно понял, можно использовать два уровня агрегирования:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...