You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL统计users_groups表中每个用户的好友数量?

实现每个用户的好友数量统计

原表 users_groups 结构与数据

userIdgroupId
userAgroupOne
userAgroupTwo
userAgroupThree
userBgroupOne
userCgroupOne
userDgroupTwo

需求说明

好友定义为与该用户同组的其他用户,需统计每个用户的好友数量(同一个好友即使和用户在多个组重叠,也只计数一次)。

SQL 查询语句

SELECT 
    u1.userId,
    COUNT(DISTINCT u2.userId) AS numFriends
FROM 
    users_groups u1
LEFT JOIN 
    users_groups u2 ON u1.groupId = u2.groupId AND u1.userId != u2.userId
GROUP BY 
    u1.userId
ORDER BY 
    u1.userId;

逻辑说明

  1. 自连接关联:通过users_groups自连接,匹配同组且非自身的用户,找出当前用户在每个组内的所有同组其他成员。
  2. 去重计数:使用COUNT(DISTINCT u2.userId)避免同一个好友因多组重叠被重复统计。
  3. 分组汇总:按用户ID分组,计算每个用户的好友总数。
  4. LEFT JOIN 兼容无好友场景:确保即使用户没有任何同组成员,也会被统计为0,覆盖所有用户的统计需求。

查询结果

userIdnumFriends
userA3
userB2
userC2
userD1

内容的提问来源于stack exchange,提问作者ijustclosedthewindow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:21:26