neo*_*key 2 sql t-sql sql-server
这可能是一个简单的,但我无法理解它.
我有一个MemberBusinessCats表,其中包含一个BusinessCatID和一个MemberID ..表可以这样呈现:
+-----------------------+-----------------+------------+
| MemberBusinessCatID | BusinessCatID | MemberID |
+-----------------------+-----------------+------------+
| 27 | 45 | 102 |
+-----------------------+-----------------+------------+
| 28 | 55 | 102 |
+-----------------------+-----------------+------------+
| 29 | 61 | 102 |
+-----------------------+-----------------+------------+
| 30 | 45 | 33 |
+-----------------------+-----------------+------------+
| 31 | 23 | 33 |
+-----------------------+-----------------+------------+
| 32 | 45 | 73 |
+-----------------------+-----------------+------------+
| 32 | 61 | 73 |
+-----------------------+-----------------+------------+
| 32 | 45 | 73 |
+-----------------------+-----------------+------------+
Run Code Online (Sandbox Code Playgroud)
如何制作脚本以显示以下数据
+-----------------+---------------------+
| BusinessCatID | NumMembers In Cat |
+-----------------+---------------------+
| 45 | 3 |
+-----------------+---------------------+
| 55 | 1 |
+-----------------+---------------------+
| 61 | 2 |
+-----------------+---------------------+
| 23 | 1 |
+-----------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
提前谢谢了.
neojakey
您需要使用聚合函数GROUP BY:
select BusinessCatID, count(*) NumMembersInCat
from MemberBusinessCats
group by BusinessCatID
Run Code Online (Sandbox Code Playgroud)
这也可以使用count() over()以下方法编写:
select distinct BusinessCatID,
count(*) over(partition by BusinessCatID) NumMembersInCat
from MemberBusinessCats
Run Code Online (Sandbox Code Playgroud)
如果您想计算每个类别中的成员数量,那么您可以使用:
select BusinessCatID,
count(distinct MemberID) NumMembersInCat
from MemberBusinessCats
group by BusinessCatID
Run Code Online (Sandbox Code Playgroud)