【发布时间】:2023-04-01 07:49:01
【问题描述】:
我想收到过去 10 天中每天按日期分组的所有请求的总和。 如果一天没有请求,则对应的日期应该出现 sumrequests = 0。
我目前的查询(今天是日期2020-01-10):
SELECT
count( 0 ) AS sumrequests,
cast( requests.created_at AS date ) AS created
FROM
requests
WHERE
(
requests.created_at
BETWEEN ( curdate() - INTERVAL 10 DAY )
AND ( curdate() + INTERVAL 1 DAY ))
GROUP BY
cast(requests.created_at AS date)
然后我收到以下列表:
sumrequests | created
--------------------------
3 | 2020-01-05
100 | 2020-01-08
但它应该回馈:
sumrequests | created
--------------------------
0 | 2020-01-01
0 | 2020-01-02
0 | 2020-01-03
0 | 2020-01-04
3 | 2020-01-05
0 | 2020-01-06
0 | 2020-01-07
100 | 2020-01-08
0 | 2020-01-09
0 | 2020-01-10
如果没有额外的日历表,我怎样才能得到这个。
感谢您的帮助!
【问题讨论】:
-
您可以使用这种解决方案即时生成您的日期范围,然后
JOIN使用您的数据:stackoverflow.com/questions/9295616/… -
不,这个答案对我没有帮助。
-
考虑处理应用代码中数据显示的问题