如何在没有记录的情况下返回MySQL中所有前30天的列表



我有一个存储支持票证的表。我需要在图表上显示一些统计数据。在其中一张图表中,我想显示过去30天内收到的门票的历史数据
想象一下,主票的结构是这样的:

票表:

ticket_id 日期
1 2021-03-21
2 2021-03-21
3 2021-03-25
4 2021-03-26
5 2021-03-27
6 2021-03-27
7 2021-03-28

您可以使用日历表:

WITH calendar (
SELECT '2021-03-01' + INTERVAL (seq) DAY AS d
FROM seq_0_to_400
)
SELECT c.d, COUNT(t.date)
FROM calendar c
LEFT JOIN tickets t
ON c.d = t.date
WHERE c.d BETWEEN ... AND ...;

db<gt;小提琴演示

最新更新