假设我有一个投票表,用户可以在其中对值进行向上、向下或持平的投票。 假设每次进行正确的投影时用户都会得到一个点。
在每个周末我想显示一些统计数据。
类似于:
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
很好。这将为我提供一个很好的列表,其中“最佳猜测”用户首先出现。
这是我的问题:
我如何在同一个查询中获取每个用户在给定时间段内投票的次数?
换句话说:我想要一个计数 - 每行 - 需要包含在上述查询中使用 user_id 找到的行数。
有什么建议吗?
谢谢。
最佳答案
只需添加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
关于sql - mysql 分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1438930/