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

如何编写SQL统计自引用表中A级别用户下辖的C级别人数并排序

解决方案

原表信息

现有members表结构及数据如下:

idlevelnamemanagedBy
1AErik
2BJerald1
3CAlexis2
4AJohnathan
5CDoreen2
6BJay4
7CRobin6
8CVictor6
9CEthel6

需求为:统计每位A级用户下辖的C级用户数量,并按数量从多到少排序,期望输出如下:

NamememberCount
Johnathan3
Erik2

SQL语句

SELECT 
    a.name AS Name,
    COUNT(c.id) AS memberCount
FROM 
    members a
LEFT JOIN 
    members b ON a.id = b.managedBy
LEFT JOIN 
    members c ON b.id = c.managedBy
WHERE 
    a.level = 'A'
GROUP BY 
    a.id, a.name
ORDER BY 
    memberCount DESC;

逻辑说明

  1. 先筛选出所有A级用户作为主表a
  2. 通过LEFT JOIN关联该A级用户直接管理的B级用户表b(关联条件:a.id = b.managedBy)
  3. 再次通过LEFT JOIN关联B级用户管理的C级用户表c(关联条件:b.id = c.managedBy)
  4. 按A级用户的id和name分组,统计每组对应的C级用户数量(COUNT(c.id))
  5. 最后按统计得到的memberCount降序排序,得到期望结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:12:49