Mysql 统计当年每个月的数据 当月没有自动补0

SELECT a.month, IFNULL(b.max, 0) AS max, IFNULL(b.min, 0) AS min
        FROM (
            SELECT DATE_FORMAT(CURDATE(), '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 2 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 3 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 4 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 5 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 6 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 7 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 8 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 9 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 10 MONTH, '%m') AS MONTH
            UNION
            SELECT DATE_FORMAT(CURDATE() - INTERVAL 11 MONTH, '%m') AS MONTH
        ) a
            LEFT JOIN (
                SELECT DATE_FORMAT(created_at, '%m') AS MONTH,
                   MAX(temperature) max,
									 MIN(temperature) min
                 FROM pressure_statistics 
                WHERE
                     DATE_FORMAT(created_at, '%Y-%m') > DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 12 MONTH), '%Y-%m')
										 and  YEAR(created_at)="2023"
										 and organize_id=0
                GROUP BY MONTH
            ) b
            ON a.month = b.month
        ORDER BY a.month ASC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值