MySql-日期分组

一、分别统计各时间各类型数据条数

数据库的 request_time字段

数据类型:timestamp

默认值:CURRENT_TIMESTAMP

例子: 2024-01-26 08:25:48 

原数据:

1、将数据按照日期(年月日)形式输出

按照request_time字段分组以(年月日形式)输出

   SELECT
            DATE(request_time) AS date,
            SUM(CASE WHEN task_command_value = 1 THEN 1 ELSE 0 END) AS count_1
            SUM(CASE WHEN task_command_value = 2 THEN 1 ELSE 0 END) AS count_2,
            SUM(CASE WHEN task_command_value = 3 THEN 1 ELSE 0 END) AS count_3,
            SUM(CASE WHEN task_command_value = 4 THEN 1 ELSE 0 END) AS count_4,
            SUM(CASE WHEN task_command_value = 5 THEN 1 ELSE 0 END) AS count_5
        FROM `数据库名`.表名
        GROUP BY DATE(request_time)
        ORDER BY DATE(request_time) DESC

输出结果:

2、将数据按照每月(月)形式输出

SELECT
    MONTH(request_time) AS date,
    SUM(CASE WHEN task_command_value = 1 THEN 1 ELSE 0 END) AS count_1,
    SUM(CASE WHEN task_command_value = 2 THEN 1 ELSE 0 END) AS count_2,
    SUM(CASE WHEN task_command_value = 3 THEN 1 ELSE 0 END) AS count_3,
    SUM(CASE WHEN task_command_value = 4 THEN 1 ELSE 0 END) AS count_4,
    SUM(CASE WHEN task_command_value = 5 THEN 1 ELSE 0 END) AS count_5
FROM `数据库名`.表名
GROUP BY MONTH(request_time)
ORDER BY MONTH(request_time) DESC

输出结果:缺点是如果两年的同月数据无法区别

3、将数据按照年月形式输出(使用DATE_Format函数)

SELECT
    DATE_FORMAT(request_time,'%y-%m') AS date,
    SUM(CASE WHEN task_command_value = 1 THEN 1 ELSE 0 END) AS count_1,
    SUM(CASE WHEN task_command_value = 2 THEN 1 ELSE 0 END) AS count_2,
    SUM(CASE WHEN task_command_value = 3 THEN 1 ELSE 0 END) AS count_3,
    SUM(CASE WHEN task_command_value = 4 THEN 1 ELSE 0 END) AS count_4,
    SUM(CASE WHEN task_command_value = 5 THEN 1 ELSE 0 END) AS count_5
FROM `数据库名`.表名
GROUP BY DATE_FORMAT(request_time,'%y-%m')
ORDER BY DATE_FORMAT(request_time,'%y-%m') DESC

输出结果:

二、分别统计各时间各类型数据总值

数据库的 date字段

数据类型:date

例子: 2024-04-09

原数据:

1、将数据按月汇总输出

SELECT
    DATE_FORMAT(date,'%y-%m') as date,
    SUM(everyday_1_bill) AS num1,
    SUM(everyday_2_bill) AS num2,
    SUM(everyday_3_bill) AS num3,
    Sum(everyday_4_bill) AS num4,
    SUM(everyday_5_count) AS num5,
    SUM(everyday_6_count) AS num6,
    SUM(everyday_7_count) AS num7,
    SUM(everyday_8_count) AS num8
FROM `数据库名`.数据库表名
GROUP BY DATE_FORMAT(date,'%y-%m')

输出结果:

2、将数据按周汇总输出(%U是周)

SELECT
    DATE_FORMAT(date,'%y-%m %U') as date,
    SUM(everyday_1_bill) AS num1,
    SUM(everyday_2_bill) AS num2,
    SUM(everyday_3_bill) AS num3,
    Sum(everyday_4_bill) AS num4,
    SUM(everyday_5_count) AS num5,
    SUM(everyday_6_count) AS num6,
    SUM(everyday_7_count) AS num7,
    SUM(everyday_8_count) AS num8
FROM `数据库名`.数据库表名
GROUP BY DATE_FORMAT(date,'%y-%m %U')

输出结果:

相关推荐

  1. MysqlMysql8日常优化经验分享

    2024-04-29 23:02:02       12 阅读
  2. MySQL 日期函数

    2024-04-29 23:02:02       27 阅读
  3. mysql日期时间函数

    2024-04-29 23:02:02       29 阅读
  4. MySQL 自建数据库慢日志分析

    2024-04-29 23:02:02       15 阅读
  5. MySQL日期有关函数

    2024-04-29 23:02:02       23 阅读
  6. MySQL 函数参考手册(MySQL 日期函数)

    2024-04-29 23:02:02       30 阅读
  7. mysql_binlog格式分析,快速了解binlog日志格式

    2024-04-29 23:02:02       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 23:02:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 23:02:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 23:02:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 23:02:02       20 阅读

热门阅读

  1. Linux的docker基础知识

    2024-04-29 23:02:02       12 阅读
  2. linux切换工作目录

    2024-04-29 23:02:02       15 阅读
  3. 大数据Storm组件介绍

    2024-04-29 23:02:02       13 阅读
  4. gt9271_update_cfg.bat

    2024-04-29 23:02:02       12 阅读
  5. 软件重构的要点及注意事项

    2024-04-29 23:02:02       11 阅读
  6. 模拟LinkedList实现的双向循环链表

    2024-04-29 23:02:02       12 阅读
  7. 服用5年份筑基丹 - Vue篇

    2024-04-29 23:02:02       10 阅读
  8. 2024年北京高校数学建模校际联赛竞赛B题

    2024-04-29 23:02:02       11 阅读
  9. 创建临时表(DM8达梦数据库)

    2024-04-29 23:02:02       11 阅读
  10. ros2小车使用slam-toolbox建图

    2024-04-29 23:02:02       52 阅读
  11. Django框架之request对象

    2024-04-29 23:02:02       43 阅读