zoukankan      html  css  js  c++  java
  • mysql按日期分组统计数据

    一,最近十二个月:没有数据的月份不展示

    SELECT COUNT(*) AS visitCount, DATE_FORMAT(create_time, '%m') AS month FROM auditlog
            WHERE operate_type = 10 AND DATE_FORMAT(create_time,'%Y-%m')>
            DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m')
            GROUP BY month;

     二,最近十二个月,没有数据的补0

    SELECT DATE_FORMAT(CURDATE(), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT(CURDATE(), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 6 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 6 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 7 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 7 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 8 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 8 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 9 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 9 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 10 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 10 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')
            UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 11 MONTH), '%Y-%m') AS month ,COUNT(id) AS visitCount FROM auditlog WHERE operate_type = 10 AND DATE_FORMAT((CURDATE() - INTERVAL 11 MONTH), '%Y-%m') = DATE_FORMAT(create_time,'%Y-%m')

     三,所有数据按月统计,没有数据的月份不展示

    select date_format(create_time, '%m') month, count(*) visitCount
    from auditlog WHERE operate_type = 10
    group by date_format(create_time, '%Y-%m');

  • 相关阅读:
    图论1 Tarjan算法
    codevs1380 没有上司的舞会
    阿牛的EOF牛肉串
    codevs1105 过河
    HDU5340 Three Palindromes
    AndroidStudio中安装GsonFormat插件并根据json文件生成JavaBean
    Android中五种常用对话框的使用
    AndroidStudio中更新到最新版本后仍然提示:This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot o
    AndroidStudio中下载某版本gradle速度慢,从哪里高速下载指定版本gradle
    若依微服务版怎样修改Nacos中配置文件使Url不受权限认证跳过Token验证
  • 原文地址:https://www.cnblogs.com/cailijuan/p/11750805.html
Copyright © 2011-2022 走看看