iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中按时间统计每个小时的记录数的示例分析
  • 481
分享到

MySQL中按时间统计每个小时的记录数的示例分析

2024-04-02 19:04:59 481人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关Mysql中按时间统计每个小时的记录数的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 抽空在stack overflow转了一

这期内容当中小编将会给大家带来有关Mysql中按时间统计每个小时的记录数的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。



抽空在stack overflow转了一圈, 看到一个有关sql的提问, 大概转述一下:

构造语句:

点击(此处)折叠或打开

  1. CREATE TABLE `st` (

  2.   `id` varchar(8) NOT NULL,

  3.   `time` timestamp NULL DEFAULT NULL,

  4.   PRIMARY KEY (`id`)

  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4


  6. insert into st values('F41','2016-08-27 00:25:58');

  7. insert into st values('F42','2016-08-27 01:15:03');

  8. insert into st values('F43','2016-08-27 02:14:30');

  9. insert into st values('F44','2016-08-27 02:24:12');

  10. insert into st values('F45','2016-08-27 03:05:46');

  11. insert into st values('F46','2016-08-27 04:08:07');

  12. insert into st values('F47','2016-08-27 05:10:35');

  13. insert into st values('F48','2016-08-27 07:12:32');

  14. insert into st values('F59','2016-08-27 08:21:19');

  15. insert into st values('F50','2016-08-27 09:19:26');

  16. insert into st values('F51','2016-08-27 11:01:56');

  17. insert into st values('F52','2016-08-27 12:09:38');

  18. insert into st values('F53','2016-08-27 13:42:48');

  19. insert into st values('F54','2016-08-27 14:47:26');

  20. insert into st values('F55','2016-08-27 15:24:12');

  21. insert into st values('F56','2016-08-27 16:22:05');

  22. insert into st values('F57','2016-08-27 18:20:47');

  23. insert into st values('F58','2016-08-27 19:11:09');

  24. insert into st values('F59','2016-08-27 19:41:47');

  25. insert into st values('F60','2016-08-27 19:57:06');

  26. insert into st values('F61','2016-08-27 20:12:45');

  27. insert into st values('F62','2016-08-27 21:55:41');

  28. insert into st values('F63','2016-08-27 22:17:38');

  29. insert into st values('F64','2016-08-27 23:15:17');


需要按小时来统计记录的数量, 结果期望如下:


点击(此处)折叠或打开

  1. ID   time   count

  2. ------------------------------------------

  3. 1  00:00:00  1

  4. 2  01:00:00  1

  5. 3  02:00:00  1

  6. 4  03:00:00  2

  7. 5  04:00:00  1

  8. 6  05:00:00  1

  9. 7  06:00:00  1

  10. 8  07:00:00  0

  11. 9  08:00:00  1

  12. 10      09:00:00  1

  13. 11      10:00:00  1

  14. 12      11:00:00  0

  15. 13      12:00:00  1

  16. 14      13:00:00  1

  17. 15      14:00:00  1

  18. 16      15:00:00  1

  19. 17      16:00:00  1

  20. 18      17:00:00  1

  21. 19      18:00:00  0

  22. 20      19:00:00  1

  23. 21      20:00:00  3

  24. 22      21:00:00  1

  25. 23      22:00:00  1

  26. 24      23:00:00  1


这个问题有两个"关键点":
1. 某个时间段, 不存在的记录, 需要输出0;
2. 这个计数, 是less than time的计数方法, 即19:xx:xx的记录是记到20:00:00下面的, 而不是19:00:00;

首先解决时间的提取问题;

利用date_fORMat和hour, 就可以把小时数提取出来了,
同时需要用concat去拼接一下字符串, 展示出20:00:00这种效果;

为了达成关键点2的要求, 需要稍微处理一下hour的结果, 使用case when来加工一下,
最后的语句如下:


点击(此处)折叠或打开

  1. select  @rownum := @rownum + 1 AS ID,

  2.         concat((case when t.hour = 24 then 0 else t.hour end),':00:00') as time, count(*) as count

  3. from (select id, hour(date_format(time,'%H:%i:%s'))+1 as hour from st) t,

  4.      (SELECT @rownum := 0) r

  5. group by time order by ID

效果如下:

MySQL中按时间统计每个小时的记录数的示例分析

可以看到这个语句基本满足了关键点2了:

现在还缺少关键点1的解决办法: 某个时间段, 不存在的记录, 需要输出0;

目前想到的办法, 就是在表中提前插入占位用的无效数据, 然后在count数量上-1;
PS: _(:з」∠)_水平有限, 感觉靠SQL来做的话, 没什么太好的思路了....


上述就是小编为大家分享的mysql中按时间统计每个小时的记录数的示例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中按时间统计每个小时的记录数的示例分析

本文链接: https://www.lsjlt.com/news/62136.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中按时间统计每个小时的记录数的示例分析
    这期内容当中小编将会给大家带来有关MySQL中按时间统计每个小时的记录数的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 抽空在stack overflow转了一...
    99+
    2024-04-02
  • MySQL时间分组:按小时统计数据(mysql按小时分组)
    MySQL时间分组是一类涉及MySQL数据库的SQL语句,能够以小时对数据进行分组统计。 比如,如果你想根据一定的时间间隔,把MySQL数据库中的记录分成几组,那么MySQL时间分组技术就派上用场了。 MySQL时间分组主要使用MySQL语...
    99+
    2023-08-16
    mysql
  • mysql如何获取某个时间段每一天、每一个小时的统计数据
    小编给大家分享一下mysql如何获取某个时间段每一天、每一个小时的统计数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!获取每一天的统计数据做项目的时候需要统对项目日志做分析,其中有一个需...
    99+
    2024-04-02
  • sqlserver/mysql如何按天、按小时、按分钟统计连续时间段数据
    这篇文章将为大家详细讲解有关sqlserver/mysql如何按天、按小时、按分钟统计连续时间段数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一,写在前面的话最近公司...
    99+
    2024-04-02
  • mysql记录耗时中sql语句的示例分析
    这篇文章主要介绍了mysql记录耗时中sql语句的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 mys...
    99+
    2024-04-02
  • mybatis统计每条SQL的执行时间的方法示例
    背景 最近面试经常被问到关于数据库的事务的问题,可能平时我就知道加个注解@Transactional之后就一脸懵逼的。现在发现这一块真的是常常被忽略了,然而面试官就是最喜欢这种看是不常用,但是非常重要的问...
    99+
    2024-04-02
  • MySQL按时间统计数据的方法总结
    在做数据库的统计时,经常会需要根据年、月、日来统计数据,然后配合echarts来制作可视化效果。 数据库:MySQL 思路 按照时间维度进行统计的前提是需要数据库中有保留时间信息,建议是使用MySQL自带的...
    99+
    2024-04-02
  • python中时间中间键的示例分析
    这篇文章主要介绍python中时间中间键的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!时间中间键的整理一下内容是对数据接口返回的时间节点处理方法很管用的哦import { Pipe,&n...
    99+
    2023-05-31
    python
  • MySQL怎么按天分组统计一定时间内的数据
    今天小编给大家分享一下MySQL怎么按天分组统计一定时间内的数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。思路分析如果能...
    99+
    2023-07-05
  • MySQL中日志记录的示例分析
    小编给大家分享一下MySQL中日志记录的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、SQL命令历史~/.mysql_history 记录了...
    99+
    2023-06-20
  • js中isBetween时间点的示例分析
    小编给大家分享一下js中isBetween时间点的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、判断一个moment对象是否在两个其他时间点之间。mo...
    99+
    2023-06-15
  • JavaScript中时间差异的示例分析
    这篇文章主要介绍JavaScript中时间差异的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!时间差异这是一种从传统反逆向技术那里借鉴过来的基于时间的反调试技巧。当脚本在DevTools等工具环境下执行时,运...
    99+
    2023-06-27
  • MySQL按天分组统计一定时间内的数据实例(没有数据补0)
    目录简介思路分析SQL实现按天统计数据1.没数据的一天过滤2.没数据的一天有日期总数为null3.没数据的一天有日期总数为04.加入其它分组字段没数据的一天有日期总数为0附:mysql按日、周、月进行分组统计总结简介 工...
    99+
    2023-03-01
    mysql按天分组统计 mysql分组统计数据 mysql 分组统计
  • PHP日期时间函数的示例分析
    小编给大家分享一下PHP日期时间函数的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、date_default_tim...
    99+
    2024-04-02
  • CentOS系统中与时间相关命令的示例分析
    小编给大家分享一下CentOS系统中与时间相关命令的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!时间在任何系统里都是最基本的部分,必不可少。本文介绍Ce...
    99+
    2023-06-10
  • 微信小程序中缓存过期时间的示例分析
    小编给大家分享一下微信小程序中缓存过期时间的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!关于本地缓存1.wx.setStorage(wx.setStorageSync)、wx.g...
    99+
    2024-04-02
  • MySQL按天分组统计一定时间内的数据,没有数据补0
    文章目录 简介思路分析SQL实现按天统计数据1.没数据的一天过滤2.没数据的一天有日期总数为null3.没数据的一天有日期总数为04.加入其它分组字段没数据的一天有日期总数为0 简介        工作中偶尔会出现一个...
    99+
    2023-08-18
    mysql 数据库 sql java hadoop
  • Mysql数据库中的时间与页面显示时间相差8小时
    Mysql数据库中的时间与页面显示时间相差8小时 原因分析: 本地mysql时区 2、代码映射时区 3、连接数据库时区 可能存在不一致。 解决方案: 查询数据库的时区 show variables like '%time_zone'; –...
    99+
    2023-08-16
    数据库 mysql java
  • Java中System.currentTimeMillis()计算方式与时间单位转换的示例分析
    Java中System.currentTimeMillis()计算方式与时间单位转换的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、时间的单位转换1秒=1000...
    99+
    2023-06-22
  • Mysql中Performance_schema SQL执行统计的示例分析
    这篇文章主要为大家展示了“Mysql中Performance_schema SQL执行统计的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mysql中P...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作