mysql中获取当月的每天的数据数量的sql怎么写,没有数据的日期数量补0,格式采用月、日
时间: 2024-03-08 11:49:29 浏览: 93
可以使用以下SQL语句来获取当月的每天的数据数量,并且对于没有数据的日期补0:
```
SELECT DATE_FORMAT(date_column, '%m-%d') AS date, COUNT(*) AS count
FROM (
SELECT DATE_ADD(LAST_DAY(CURRENT_DATE()), INTERVAL 1 DAY) - INTERVAL n DAY AS date
FROM (
SELECT a.N + b.N * 10 + 1 AS n
FROM (
SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) a, (
SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) b
ORDER BY n DESC
) x
WHERE DATE_ADD(LAST_DAY(CURRENT_DATE()), INTERVAL 1 DAY) - INTERVAL n DAY >= DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01')
) d
LEFT JOIN table ON DATE(date_column) = d.date
GROUP BY d.date
ORDER BY d.date;
```
其中,`date_column`是包含日期的列名,`table`是表名。这条SQL语句会把当月的每一天的数量分别统计出来,并将没有数据的日期补0。结果的日期格式采用月、日的形式(例如:01-01)。
阅读全文