mysql - MySQL - 如何获取过去 7 天的每一天的记录数?
问题描述
我要做的是获取过去 7 天中每一天的记录数,假设我今天有 3 条记录,昨天有 4 条记录,两天前有 2 条记录,等等。
我想要这样的东西:
[12/06/2021] 1
[11/06/2021] 4
[10/06/2021] 3
[09/06/2021] 6
[08/06/2021] 7
[07/06/2021] 2
[06/06/2021] 7
(或者只得到计数,也可以。)
我有一个字段 - message_datetime 保存日期时间。
有没有办法在一个查询中做到这一点?
我做了什么:
select CAST(message_datetime AS DATE),count(message_datetime) from messages group by CAST(message_datetime AS DATE) WHERE message_datetime
它有效,但我想要最后 7 天。谢谢
解决方案
我一直在等你发布自己的努力,但由于有人已经“抢先”并开始发布答案,所以:
假设表的名称是my_table
,然后尝试:
select date(message_datetime) as message_date, count(*) as cnt from my_table
where datediff(curdate(), date(message_datetime)) < 7
group by date(message_datetime)
order by date(message_datetime) desc
更新
message_datetime
按照草莓的建议,这里是一个更新的查询,如果是一个索引列,它应该更高效:
select date(message_datetime) as message_date, count(*) as cnt from my_table
where message_date_time >= date_sub(curdate(), interval 6 day)
group by date(message_datetime)
order by date(message_datetime) desc
推荐阅读
- c# - 无法隐式转换类型'System.Collections.Generic.IEnumerable
' 到 'System.Collections.Generic.List ' - lua - 在同一个库上多次调用 ffi.load 是不是很糟糕?
- python - 在 Django 中选择一条记录:使用查询集过滤外键
- scala - 在 Scala 中动态访问类变量
- python - 如果我只在测试套件运行期间使用库,它应该在我的 Pipfile 中的普通包还是开发包中?
- .net-core - .net core 2.1 - AddJsonOptions 不起作用
- django - 管理员中的 Django allauth 而不是默认用户
- python - “bafang-python”包中使用的Python“魔术”方法是什么?
- r - ggplot2:如何使用 ggplot_build() 检查绘图的每个元素?
- html - 使 HTML 文件中资源的浏览器缓存无效