只计算某些字段是唯一的? (多个GROUP BY)

时间:2013-05-15 21:41:11

标签: mysql sql pdo

所以我有一个查询,它将计算过去3天内每个日期的记录数量,从我上一个问题开始,在其他人的帮助下,我能够得出以下内容:

SELECT COUNT(*) AS dailyCount
FROM highscores
WHERE DATE(date) BETWEEN CURDATE() - INTERVAL 3 DAY AND CURDATE()
GROUP BY DATE(date)

该查询执行以下操作,在过去30天内,它将获取每个日期的记录数,并将以dailyCount的形式返回。

但是我现在要做的就是让dailyCount只计算之前未计算username的字段。

我尝试过以下操作(将username添加到GROUP BYs):

SELECT COUNT(*) AS dailyCount
FROM highscores
WHERE DATE(date) BETWEEN CURDATE() - INTERVAL 3 DAY AND CURDATE()
GROUP BY DATE(date), username

然而,这并没有给出预期的结果。

1 个答案:

答案 0 :(得分:2)

Wrikken

的信用

以下工作:

SELECT COUNT(DISTINCT username) AS dailyCount
FROM highscores
WHERE DATE(date) BETWEEN CURDATE() - INTERVAL 3 DAY AND CURDATE()
GROUP BY DATE(date)