Запрос текущего количества голосов

Привет, я полный новичок в SQL.

Мне нужно получить список: «сколько пользователей» отдали «сколько голосов». В нашем случае у каждого пользователя есть лимит в 10 голосов. Итоговая таблица должна выглядеть так:

Количество голосов Количество пользователей
10 25
9 32
8 43
(и так далее)

В моём первом запросе SQL я зашёл так далеко:

SELECT user_id, count(user_id)
FROM discourse_voting_votes
GROUP BY user_id
ORDER BY count DESC

Это выводит список пользователей, отсортированный по количеству отданных голосов. С помощью этого я могу вручную рассчитать нужный результат, но это утомительно и чревато ошибками.

Боюсь, это тоже мой первый SQL-запрос, так что посмотрим, как всё получится… :slightly_smiling_face: но это хоть чем-то поможет?

WITH votes AS (
    SELECT user_id, count(user_id) as Number_of_Votes
    FROM discourse_voting_votes dvv
    WHERE dvv.archive = false
    GROUP BY user_id
    ORDER BY Number_of_Votes DESC 
)
SELECT Number_of_Votes, count(*) AS Number_of_Users
FROM votes
GROUP BY Number_of_Votes
ORDER BY Number_of_Votes DESC

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

Уверен, этот запрос пригодится и другим. В нашем случае мы хотим показать такое распределение голосов, чтобы наши волонтёры лучше осознавали, насколько много или мало они используют свои голоса по сравнению с другими коллегами. Конечная цель — увеличить количество использованных голосов.

Я очень рад, что всё сработало. :+1: Я давно хотел потренироваться с Data Explorer, и это казалось идеальной возможностью, так что на самом деле благодарить должен я вас. :slightly_smiling_face:

Я добавил строку ‘archive = false’, чтобы ограничить результаты текущим общим количеством голосов пользователя и не включать исторические данные. Думаю, это подходит для вашего случая, но удалите её, если вам нужна «общая сумма».

Спасибо ещё раз. :+1::slightly_smiling_face:

Ах, я понятия не имел, что это такое. Да, это соответствует запросу, который я искал. Ещё раз спасибо, мы уже используем эти данные.