Отличительный подсчет и суммирование по уникальным счетам - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть таблица с учебниками (tutorial_id, user_id, tutorial_date), и мне поручено выяснить, сколько пользователей выполнило определенное количество учебников.

Итак, если бы было 5 пользователей, которые делали 6 учебников, и 3 пользователя, которые делали 2 учебника, я бы хотел получить следующий вывод:

Tutorial_Count (unique)            Number of Students With this Tutorial Count
6                                  5
2                                  3

Я могу получить различное количество (первый столбец):

SELECT DISTINCT COUNT(user_id) from tutorials group by user_id

Но я не знаю, как подсчитать количество пользователей, которые вписываются в эти скобки.

1 Ответ

1 голос
/ 20 декабря 2011

Не проверено, но попробуйте это:

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