• mysql按月分组并补齐


    select
        a.month,
        IFNULL(b.point_count_0, 0) as point_count_0,
        IFNULL(b.point_count_1, 0) as point_count_1,
        IFNULL(b.point_count_2, 0) as point_count_2,
        IFNULL(b.point_count_3, 0) as point_count_3
    from
        (
        select
            DATE_FORMAT(CURDATE(), '%Y-%m') as month
    union
        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
            ) a
    left join (
        select
            DATE_FORMAT(jsrp.create_time, '%Y-%m') as month,
            count(jsrg.grade_code = '64b73c51de18904e31ee3365' or null) as point_count_0,
            count(jsrg.grade_code = '64b73c5ede18904e31ee3366' or null) as point_count_1,
            count(jsrg.grade_code = '64b73c78de18904e31ee3367' or null) as point_count_2,
            count(jsrg.grade_code = '64b73c78de18904e31ee3368' or null) as point_count_3
        from
            jld_safe_risk_point jsrp
        left join jld_safe_risk_grade jsrg 
            on
            jsrp.grade_code = jsrg.grade_code
        where
            DATE_FORMAT(jsrp.create_time, '%Y-%m') > DATE_FORMAT(DATE_SUB(CURDATE(), interval 12 month), '%Y-%m')
        group by
            month
                ) b
                on
        a.month = b.month
    order by
        a.month asc
     

  • 相关阅读:
    Unittest学习笔记
    RGMII接口--->(007)FPGA实现RGMII接口(七)
    【观察】数字化时代的咨询往何处走?软通咨询的思与行
    1.5-16:买房子
    通过脚本(awk,grep)清洗实体类数据,存入数据库
    Qt应用开发(基础篇)——普通按钮类 QPushButton QCommandLinkButton
    【Web前端】CSS3新特性
    安装anaconda3,并搭建一个python3.10开发环境【AI深度学习环境搭建】
    !还不了解位操作符?????!!!!!
    Linux内核面试题(1)
  • 原文地址:https://blog.csdn.net/Heyll__/article/details/133122596