【发布时间】:2020-05-03 07:51:45
【问题描述】:
我有一个 mysql 表,我需要从中找出过去 30 天内每天创建的记录数。
一个简单的查询就像
select count(*) from table_name where date(created) > yyyymmdd group by date(created) order by date(created)
我不需要在这里选择日期,只需要计数。
所以我希望这里有 30 行。 但这里的问题是,如果某天没有创建记录,它就不会出现在结果中,而且我的行数会少于 30 行。
有没有其他方法可以为没有创建记录的日期打印零 (0) 计数?
当前输出:
+---------------+----------+
| date(created) | count(*) |
+---------------+----------+
| 2019-12-20 | 1504 |
| 2019-12-29 | 12 |
+---------------+----------+
预期输出:
+---------------+----------+
| date(created) | count(*) |
+---------------+----------+
| 2019-12-20 | 1504 |
| 2019-12-21 | 0 |
| 2019-12-22 | 0 |
| 2019-12-23 | 0 |
| 2019-12-24 | 0 |
| 2019-12-25 | 0 |
| 2019-12-26 | 0 |
| 2019-12-27 | 0 |
| 2019-12-28 | 0 |
| 2019-12-29 | 12 |
+---------------+----------+
【问题讨论】:
-
添加样本数据和预期结果
-
添加了@Jens。请检查。