對于這個問題,網(wǎng)上找了很多示例,絕大部分都是 依賴于創(chuàng)建的時間表然后進行外連接解決
廢話不多說,上demo
1.數(shù)據(jù)庫中選擇任意一個有數(shù)據(jù)的表,例如我選擇的是 ak_customer表
```
SELECT? ? ?@cdate := DATE_ADD( @cdate, INTERVAL - 1 DAY ) date,? ?0 AS day_count
FROM? ? ?( SELECT @cdate := DATE_ADD( CURDATE( ), INTERVAL - 10 DAY ) FROM ak_customer ) t1? WHERE? ? @cdate > '2021-06-03'
```
查詢結(jié)果如下:

2.將自己要統(tǒng)計的數(shù)據(jù),按我們自己的要求寫出來,當(dāng)然此時,肯定顯示的都是有數(shù)據(jù)的記錄統(tǒng)計結(jié)果:?
```
select DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date ,COUNT(*) as day_count
from ak_customer group by date
```
查詢結(jié)果如下:

3.聯(lián)合查詢將沒有記錄的時間補0
```
select date,Max(day_count) day_count from (
SELECT
? ? @cdate := DATE_ADD( @cdate, INTERVAL - 1 DAY ) date,
? ? 0 AS day_count
FROM
? ? ( SELECT @cdate := DATE_ADD( CURDATE( ), INTERVAL - 10 DAY ) FROM ak_customer ) t1
WHERE
? ? @cdate > '2021-06-03'? union
select * from (
????select DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date ,COUNT(*) as day_count
????from ak_customer? group by date
????)t2
) a GROUP BY date ASC
```
查詢結(jié)果如下:

總結(jié):當(dāng)然還有別的方法,不過這個方法不用創(chuàng)建任何的存儲過程,是相對來說簡單一點的