sql - mysql 分组依据

标签 sql mysql count

假设我有一个投票表,用户可以在其中对值进行向上、向下或持平的投票。 假设每次进行正确的投影时用户都会得到一个点。

在每个周末我想显示一些统计数据。

类似于:

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/

相关文章:

mysql - MySQL中的 'insert if not exists'怎么办?

sql - 通过 SSIS 执行任务更新的记录行

mysql - 在 mysql 中以随机顺序从 2 个表中选择 2 个不同的记录

mysql - 比较多个模式

mysql - 如何通过 Laravel 中的 View 统计表中的用户数量?

php - 软删除和恢复(MySQL、PHP)

mysql - 检索客户 ID strip

php - 您能否在一个查询中更新具有最高 ID 的行?

MySQL - 根据提交的工作选择用户名(二变量)

mysql按日期范围显示行和组中的每种类型