mysql按月查询统计(统计近12个月的项目个数)
mysql按月查询统计,没有数据的填充为0
1.获取过去12个月所有的月份
SELECT DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 6 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 7 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 8 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 9 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 10 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 11 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 12 MONTH), %Y-%m) AS `month`
运行结果: 2.把上面的月份与显示数据进行关联查询
-- 统计近12个月的项目个数(project 表没有的月份补齐) select d.`month`,count(p.id) as `count` from( SELECT DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 6 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 7 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 8 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 9 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 10 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 11 MONTH), %Y-%m) AS `month` UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 12 MONTH), %Y-%m) AS `month` )d left join project p on DATE_FORMAT(p.plan_start_date, %Y-%m)=d.`month` group by month
运行结果: