Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 不同计数和按唯一计数求和_Sql Server 2005_Distinct_Aggregate - Fatal编程技术网

Sql server 2005 不同计数和按唯一计数求和

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\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                                  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;