我需要每天计算表中的行数。
该表如下所示:
表 ABC:
f_id|reg_date
1|2020-09-08
2|2020-09-12
3|2020-10-01
4|2020-09-07
5|2020-09-08
6|2020-09-09
如果我正在运行查询说我想要从 15 日前一周开始到 2020-09-15 的行数,则预期输出:
count|date
1|2020-09-07
3|2020-09-08
4|2020-09-09
4|2020-09-10
4|2020-09-11
5|2020-09-12
5|2020-09-13
5|2020-09-14
我不确定如何获得上述输出。
带有日期范围和分组依据的卢布只是给我该日期的行数,而不是该日期的总数。例如,按日期分组给我:1|2020-09-07、2|2020-09-08 等等。
一种解决方案是:
- 看到它在这个sqlfiddle中工作
如您所见,如果您真的想将它们包含在结果中,则需要以某种方式提供表中没有数据的日期。最简单的方法是有一个包含一些日期的表格。另一种方法可能是一些带有花哨数学的观点。
无论如何,在此解决方案中您需要注意的是您需要在
COUNT()
函数中指定一列。有了COUNT(*)
它,它也会计算NULL
值。还有其他方法可以解决这个问题,尤其是 MySQL 8.0。不幸的是我现在没有时间,但也许我以后会找到时间。或者其他人添加了另一个答案。
编辑:例如,从任意日期(在本例中为当前日期)开始创建例如 1000 个日期,例如,您可以使用以下命令: