項目場景:
mysql查詢統計最近12個月的數據,按每個月縱向展示,效果圖
sql語句
注意:
count( v.uuid ) 這里的是被統計那張表的id
SELECT m.`month`,count( v.uuid ) AS total
FROM (SELECT DATE_FORMAT(( CURDATE()), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 1 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 2 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 3 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 4 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 5 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 6 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 7 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 8 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 9 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 10 MONTH ), '%Y-%m' ) AS `month` UNIONSELECT DATE_FORMAT(( CURDATE() - INTERVAL 11 MONTH ), '%Y-%m' ) AS `month`
) m
LEFT JOIN test v ON DATE_FORMAT( v.create_time, '%Y-%m' ) = m.`month`
GROUP BY m.`month` order by m.`month`
原文:
Mysql 查詢統計最近12個月的數據_mysql查詢最近12個月的數據-CSDN博客