mysql按天,小时,半小时,N分钟,分钟进行数据分组统计
mysql按天,小时,半小时,N分钟,分钟进行数据分组统计
- mysql不同时间粒度下的分组统计
- 按天统计
- 按小时统计
- 按半小时统计
- 按N分钟统计
- 按分钟统计
mysql不同时间粒度下的分组统计
我们在做项目或者数据分析时,经常遇到这样的需求:统计不同时间粒度下的数据分布情况,例如,每一天中每个小时网站的访问量,某路口每半个小时通过的车辆数量等。对于此类的问题,一个sql简单的查询就能实现,故特此记录下,方便以后使用。
在MySQL中,我的表为:track
数据结构如下所示:
按天统计
SELECT DATE(TimeStart) AS date, COUNT(*) AS num
FROM track
WHERE Flag = 0 AND Duration >= 300
GROUP BY date
ORDER BY date;
按小时统计
SELECT DATE_FORMAT(TimeStart, '%Y-%m-%d %H:00:00') AS time, COUNT(*) AS num
FROM track
WHERE Flag = 0 AND Duration >= 300
GROUP BY time
ORDER BY time;
按半小时统计
SELECT time, COUNT( * ) AS num
FROM(SELECT Duration,DATE_FORMAT(concat( date( TimeStart ), ' ', HOUR ( TimeStart ), ':', floor( MINUTE ( TimeStart ) / 30 ) * 30 ),'%Y-%m-%d %H:%i' ) AS time FROM tarckWHERE Flag = 0 AND Duration >= 300 ) a
GROUP BY DATE_FORMAT( time, '%Y-%m-%d %H:%i' )
ORDER BY time;
按N分钟统计
将上面的SQL语句稍微修改下,就可以实现按任意N分钟为时间片的分组统计,如按10分钟统计,先上代码:
SELECT time, COUNT( * ) AS num
FROM(SELECT Duration,DATE_FORMAT(concat( date( TimeStart ), ' ', HOUR ( TimeStart ), ':', floor( MINUTE ( TimeStart ) / 10 ) * 10 ),'%Y-%m-%d %H:%i' ) AS time FROM tarckWHERE Flag = 0 AND Duration >= 300 ) a
GROUP BY DATE_FORMAT( time, '%Y-%m-%d %H:%i' )
ORDER BY time;
基本思路:
将datetime类型的时间转化为相应时间片的时间,例如将‘2017-03-01 01:08:19’ 转化为‘2017-03-01 01:00:00’,然后group by即可。
按分钟统计
SELECT DATE_FORMAT(TimeStart, '%Y-%m-%d %H:%i:00') AS time, COUNT(*) AS num
FROM track
WHERE Flag = 0 AND Duration >= 300
GROUP BY time
ORDER BY time;
DATE_FORMAT功能强大,可以根据format字符串格式化date值,参考下面链接
MySQL DATE_FORMAT() 函数
原文链接:https://blog.csdn.net/u010946448/article/details/83752984
mysql按天,小时,半小时,N分钟,分钟进行数据分组统计相关推荐
- Mysql数据处理,按照半小时汇总数据,
需求:将数据库中每分钟一条的数据表,从9:30取到22:00 ,以半小时为单位汇总,并输出excel. 数据表字段:id(序号).incount(计数).cdate(数据时间) 表名:m_temp 难 ...
- 聊聊我的高效学习法,让你快速拿下算法、MySQL…每天只花半小时
过了十一假期,下一个小长假就是元旦了,中间这仨月还是要老老实实上班的,毕竟快到年底了,为了年终奖也要好好表现一下自己. 除了干好份内工作,为了不让后浪拍在沙滩上,我建议你闲暇的时候也要充充电,没准儿学 ...
- mysql当前时间加半小时_mysql怎么在当前时间增加一小时
我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...
- 2020-09-10 MYSQL按时间段分组查询当天,每小时,15分钟数据分组
查询的需求比较麻烦,根据spreader_id和返回的状态码来判断事件的回传成功率,但是还需要新增时间段的查询,比如产品要的是每15分钟内数据的回传成功率. 这样的话就需要对时间段进行分组查询,我保存 ...
- mysql 先删后增 更新_MySQL 高级操作——新增数据、更新数据、删除数据、查询数据...
新增数据 多数据插入 只要写一次insert指令,但是可以插入多条记录 语法:insert into 表名 [(字段列表)] values (值列表1),(值列表2),(值列表3); 主键冲突 主键冲 ...
- 跟面试官侃了半小时 MySQL 事务,把原子性、一致性、持久性的实现都讲完了
来源 | 阿丸笔记 封图| CSDN下载于视觉中国 提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关. 而事务的ACID ...
- 跟面试官侃半小时MySQL事务隔离性,从基本概念深入到实现
来源 | 阿丸笔记 提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关. 而事务的ACID(即原子性Atomicity.一 ...
- mysql登陆三小时平均值图片_Mysql每小时平均值,间隔从半小时开始
我有一个mysql数据库,其中包含5分钟箱中的数据 . 我想从半小时开始创建每小时平均数据 . 通过使用mysql内置组: select date,AVG(AE) from mytable group ...
- mysql按半小时分组
mysql分组查询(按每小时) 这个很简单,只要字段是时间类型 select DATE_FORMAT( tf.curr_time ,'%H') as dataStartTime from t_fund ...
最新文章
- ESP8266-SDK的硬件定时器
- Codeforces Round #246 (Div. 2)
- 深度学习——行数据的分拆及如何“喂”给训练过程
- MemSQL 1.8 发布,号称最快的关系数据库
- 组合数据类型,英文词频统计
- 小乌龟同步主支代码_《我的世界》游戏理论:人类,有没有可能就是一串“代码”?...
- yii2 错误处理
- 十六进制编辑器--HxD和FlexHex
- 简约实用个人简历自我介绍PPT模板
- CMD窗口下强制删除文件
- 用计算机画画的图片,如何用画图工具画画
- android短信分享,android 短信分享
- Xcode9中,添加图片素材无法显示的问题
- 《Metasploit魔鬼训练营》环境搭建与前两章经历体会
- 路由器常见的第三方系统( OpenWRT,LEDE,PandoraBox,Gargoyle | ASUSWrt,Merlin,Padavan | DD-WRT | Tomato )
- 电子科大CTF安全萌新赛部分WP
- android显卡效果吗,安卓模拟器显卡渲染模式中DirectX和OpenGL两个有什么区别?
- HTML中的图片标签<img>
- 抽奖动画效果html,利用css实现一个抽奖动画效果
- 微型计算机怎么没声音,电脑没有声音是怎么回事 电脑失声怎么解决【解决方法】...
热门文章
- 免费Excel自动化转云端OA/ERP/CRM等办公系统数据管理软件工具
- 异常全家桶来咯,异常捕获,异常抛出,自定义异常
- PyQt模拟微信聊天页面开发
- 北大AI公开课第五课--深度学习处理器by寒武纪陈云霁
- 智能船舶概况(国内篇)
- 数据可视化方法:数据图表展示
- Django企业开发实战--by胡阳,学习记录1117
- 自己申请计算机软件著作权可以下载电子版原件了?
- java thrift异步调用_thrift异步调用 - thrift-cob_style-tnonblockingserver - ItBoth
- 计算机中的图表类型,高级会计师《职称计算机》图表制作:主要常用图表类型...