Подсчитать уникальные комбинации пар из 2 столбцов, которые имеют общий атрибут c - PullRequest
0 голосов
/ 30 апреля 2020

Учитывая 2 столбца идентификатора участника события и событий:

id  |   event
1   |     A
2   |     A
3   |     A
1   |     B
4   |     B
2   |     C
3   |     C
1   |     D
4   |     D
1   |     E
2   |     E
4   |     E

Я надеюсь подсчитать вхождения всех возможных двух уникальных комбинаций пар сопутствующих событий-участников, что примерно так:

pair    |    times_co_participate |  co_events
1, 2    |           2             |     A, E
1, 3    |           1             |     A
1, 4    |           3             |     B, D, E
2, 3    |           2             |     A, C
2, 4    |           1             |     E
3, 4    |           0             |     null

Идентификационная пара может быть в 2 отдельных столбцах id1 и id2, конечная цель - найти пару с наивысшим количеством случаев совместного участия

1 Ответ

1 голос
/ 30 апреля 2020

Использование самостоятельного объединения и агрегирования:

select t1.id, t2.id, count(*), array_agg(event) as events
from t t1 join
     t t2
     on t1.event = t2.event and t1.id < t2.id
group by t1.id, t2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...