MySQL 查询每日每小时峰值

现在的查询方法是这样的:

SELECT COUNT(r.user_id) AS users
FROM record r
WHERE r.created BETWEEN :date_from AND :date_till
GROUP BY HOUR(r.created)
ORDER BY users DESC
LIMIT 1

但这样如果查询多天的峰值就要循环执行多次查询,是否有更高效的方法?

回复
阅读 5.9k
1 个回答

假设 r.created 是类似 2014-04-03 09:04:00

SELECT COUNT(r.user_id) AS users, HOUR(r.created) data_hour, FROM_UNIXTIME(unix_timestamp(r.created), "%Y-%m-%d") data_date
FROM record r
WHERE r.created BETWEEN :date_from AND :date_till
GROUP BY data_hour, data_date
ORDER BY data_date, users, data_hour DESC
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏