TIPS:MySQL按给定时间间隔分组统计

MySQL按给定时间间隔分组统计


需求一,查询每天8点到23点的数据

  在MySQL中,若要查询在一个指定时间段内(比如每天的8点到23点)的所有数据记录, 可以使用BETWEEN关键字结合日期函数来实现。 假设数据表名为your_table_name,时间字段名为time_column。以下是一个示例SQL查询语句,获取每天8点到23点之间的所有数据记录:

SELECT * 
FROM your_table_name 
WHERE HOUR(time_column) BETWEEN 8 AND 23;

  上述查询直接基于时间字段的小时部分进行筛选,但是需要注意的是,time_column是一个可以直接用HOUR()函数提取小时数的日期时间类型字段(如DATETIME或TIMESTAMP类型)。

需求二,查询指定时间段内,每天8点到23点的数据

  如果想要查询指定时间段内的每天8点到23点的所有数据,那么在上述SQL再加上时间查询语句即可:

SELECT * 
FROM your_table_name 
WHERE 
    time_column BETWEEN '2024-04-02 00:00:00' AND  '2024-04-06 23:59:59'
AND HOUR(time_column) BETWEEN 8 AND 23;

需求三,按照时间间隔分组统计

  如果想要查询指定时间段内的每天8点到23点的所有数据,并在按照指定秒钟数时间间隔统计,假如每隔5秒钟进行统计:

SELECT 
    CONCAT(DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:'), LPAD(floor(second(create_time)/ 5)*5, 2, '0')) timePoint,
    COUNT(*) totalCount
FROM your_table_name 
WHERE 
    time_column BETWEEN '2024-04-02 00:00:00' AND  '2024-04-06 23:59:59'
AND HOUR(time_column) BETWEEN 8 AND 23
GROUP BY
    timePoint;

  CONCAT(DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:'), LPAD(floor(second(create_time)/ 5)*5, 2, '0'))语句中的5就表示每间隔5秒钟进行分组统计,如果想要其它间隔时间直接修改即可。

需求四,分组统计某个时间点的数据

  上述SQL已经按照每间隔5秒钟进行了分组统计,那么如果现在又只想统计每个时间间隔的数据,又该怎样编写SQL呢:

SELECT 
    CONCAT(DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:'), LPAD(floor(second(create_time)/ 5)*5, 2, '0')) timePoint,
    COUNT(*) totalCount
FROM your_table_name 
WHERE 
    time_column BETWEEN '2024-04-02 00:00:00' AND  '2024-04-06 23:59:59'
AND HOUR(time_column) BETWEEN 8 AND 23
AND second(time_column) % 5 = 0
GROUP BY
    timePoint;

  上述SQL通过对具体时间的分钟数进行按照5求余,从而得到当前那一时刻点数据量,即只会统计秒钟能被5除尽的数据值,执行结果如下:

timePoint totalCount
2024-04-02 21:49:45 1
2024-04-02 21:49:50 2
2024-04-02 21:49:55 4

一键三连,让我的信心像气球一样膨胀!

相关推荐

  1. TIPS:MySQL时间间隔分组统计

    2024-05-04 19:14:01       36 阅读
  2. bash计算时间差 时间间隔

    2024-05-04 19:14:01       40 阅读
  3. C++--count 统计的值相同元素个数

    2024-05-04 19:14:01       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-04 19:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-04 19:14:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-04 19:14:01       82 阅读
  4. Python语言-面向对象

    2024-05-04 19:14:01       91 阅读

热门阅读

  1. python爬虫基础知识

    2024-05-04 19:14:01       37 阅读
  2. mysql binlog入门

    2024-05-04 19:14:01       29 阅读
  3. 深入学习Linux内核 - 进程地址空间

    2024-05-04 19:14:01       32 阅读
  4. C语言总结四:函数(压缩版)

    2024-05-04 19:14:01       33 阅读
  5. 简历总结:打造HR无法拒绝的简历

    2024-05-04 19:14:01       35 阅读
  6. 【需求工程概述】

    2024-05-04 19:14:01       32 阅读