sql - 计算同一组成员的有效方法

标签 sql pandas algorithm

假设我有一个群组成员的数据集:

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/

相关文章:

java - 使用 DB2 自动增量获取异常

mysql - 带有附加列的 SQL max

mysql - 如何在mysql表中获取所有 child 的用户?

python - 子图未显示在图中 - pyplots

algorithm - 调度:将一组整数划分为 K 个子集

c++ - 对于受 CPU 限制的应用程序,您会推荐哪种语言/平台?

sql - 在Hive中导入.sql文件

python - pandas 数据框的处理

python - 如何将 pandas 系列的 json 字符串扁平化为数据框

c++ - 需要将字符串存储为某些快速数据结构中的对象的 id