我的表格目前有21000条记录,并且每天进行更新并插入近300个条目。现在,我想要的是一个查询,该查询将获取表中前10天的元素计数,因此它返回:
26000
21300
21000
等等
现在,我这样写:
"SELECT COUNT(*) from tbl_task where `task_start_time` < '2020-12-01'"
它返回21000,但仅持续1天。我想通过查询返回根据10天的记录。
但是,此操作仅进行1天。编辑:数据库风味是mysql和日期列是日期而不是datetime
最有效的方法可能是聚合和累加和:
select date(task_start_time) as dte, count(*) as cnt_on_day,
sum(count(*)) over (order by date(task_start_time)) as running_cnt
from tbl_task
group by dte
order by dte desc
limit 10;
这将返回数据中的最后10天。如果愿意,您可以轻松地适应更多的日子-实际上所有这些日子-都不会造成太大麻烦。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句