假设我有一个群组成员的数据集:
Group ID | Person ID
1 1
2 1
2 2
3 1
3 3
对于每个人,我想计算至少属于同一组(包括他们自己)的不同人的数量:
Person ID | Distinct Co-Members
1 3
2 2
3 2
除了使用组 ID 的键将上述数据集本身连接起来之外,是否有更有效的方法来进行此计数?
最佳答案
我认为你需要一个自连接和分组依据:
select t1.personid, count(distinct t2.personid)
from t t1 left join
t t2
on t1.groupid = t2.groupid
group by t1.personid;
Here是一个数据库<> fiddle 。
关于sql - 计算同一组成员的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55093476/