Sql server 2005 不同计数和按唯一计数求和
我有一个包含教程(tutorial\u id、user\u id、tutorial\u date)的表,我的任务是找出有多少用户完成了特定数量的教程 因此,如果有5个用户完成了6个教程,3个用户完成了2个教程,我希望得到以下输出:Sql server 2005 不同计数和按唯一计数求和,sql-server-2005,distinct,aggregate,Sql Server 2005,Distinct,Aggregate,我有一个包含教程(tutorial\u id、user\u id、tutorial\u date)的表,我的任务是找出有多少用户完成了特定数量的教程 因此,如果有5个用户完成了6个教程,3个用户完成了2个教程,我希望得到以下输出: Tutorial_Count (unique) Number of Students With this Tutorial Count 6 5 2
Tutorial_Count (unique) Number of Students With this Tutorial Count
6 5
2 3
我可以得到不同的计数(第一列):
但我不知道如何计算这些计数括号中的用户数。未经测试,请尝试以下方法:
;WITH cte AS
(
SELECT COUNT(user_id) AS Tutorial_Count
FROM tutorials
GROUP BY user_id
)
SELECT DISTINCT
Tutorial_Count,
COUNT(*) OVER (PARTITION BY Tutorial_Count) AS [Number of Students With this Tutorial Count]
FROM
cte;
;WITH cte AS
(
SELECT COUNT(user_id) AS Tutorial_Count
FROM tutorials
GROUP BY user_id
)
SELECT DISTINCT
Tutorial_Count,
COUNT(*) OVER (PARTITION BY Tutorial_Count) AS [Number of Students With this Tutorial Count]
FROM
cte;