MySQL считает в группе - PullRequest
       9

MySQL считает в группе

3 голосов
/ 17 сентября 2009

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

В конце каждой недели я хочу отображать статистику.

Что-то вроде:

SELECT user_id, sum( user_points ) as sum_points FROM voting_results
WHERE voting_date > ('2009-09-18' - INTERVAL 1 WEEK)
GROUP BY user_id 
ORDER BY sum_points DESC

Fine. Это приведет меня к хорошему списку, в котором пользователь с «лучшими угадываниями» появляется первым.

Вот мой вопрос:

Как мне - в том же запросе - узнать, сколько раз каждый пользователь проголосовал за данный период времени?

Другими словами: я хочу подсчет - на каждую строку - который должен содержать количество строк, найденных с помощью user_id в вышеупомянутом запросе.

Есть предложения?

Спасибо.

1 Ответ

5 голосов
/ 17 сентября 2009

Просто добавьте COUNT(*):

SELECT  user_id,
        SUM(user_points) as sum_points,
        COUNT(*) AS num_votes
FROM    voting_results
WHERE   voting_date > ('2009-09-18' - INTERVAL 1 WEEK)
GROUP BY
        user_id 
ORDER BY
        sum_points DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...