我的示例表:
+----------+---------------------+
| username | time |
+----------+---------------------+
| john | 2013-02-04 17:39:43 |
| john | 2013-02-03 00:21:31 |
| peter | 2013-02-02 15:04:53 |
| grace | 2013-02-02 03:57:43 |
| peter | 2013-02-03 15:36:15 |
+----------+---------------------+
此表记录来自用户的活动。我需要统计上次活动日期超过 30 天的用户数量。
我开发了这个查询:
SELECT
username,
MAX(time),
DATEDIFF(NOW(), MAX(time)) as diff
FROM tracking
GROUP BY username
HAVING diff > 30
它有效地返回了活动超过 30 天的用户列表,以及最后一次活动的日期。
但我需要这个列表的计数,而不是列表本身。有什么办法可以计算列表吗?
笔记:
- 我只能依靠SQL语句,我不能使用PHP或ASP或其他任何东西。
- 我不能使用STORED PROCEDURES。
- 我不需要性能,因为这个语句只会偶尔运行一次。