簡體   English   中英

從共享特定屬性的 2 列中計算對的唯一組合

[英]Count Unique Combinations of Pairs From 2 Columns That Share A Specific Attribute

給定 2 列事件參與者 ID 和事件:

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

id 對可以在 id1 和 id2 的 2 個單獨的列中,最終目標是找到具有最高共同參與發生率的對

使用自聯接和聚合:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM