【发布时间】:2016-11-14 21:19:35
【问题描述】:
我有 2 个这样描述的表:
表成员
MemberID | GroupID
1 | 101
2 | 104
3 | 107
4 | 102
5 | 103
6 | 104
7 | 105
8 | 106
......
表组(组是嵌套的)
GroupID | ParentID
101 | NULL
102 | NULL
103 | 111
104 | 101
105 | 102
106 | 105
107 | NULL
......
现在我想从数据库中获取 TOP 10 个成员最多的组,我该如何编写我的 SQL 查询?
请注意:
总成员数应包含子组成员数
一个组可以拥有无限级别的子组(例如 parent -> subLv1 -> subLv2 ...)
对于上面的例子,期望的结果是:
Rank | GroupID | MemberCount
1 | 102 | 3
2 | 101 | 2
3 | 105 | 2
4 | 103 | 1
5 | 104 | 1
....
【问题讨论】:
-
编辑您的问题并提供示例结果(和相应的示例数据)。
标签: sql sql-server