mysql十分钟分组,以十分钟为分组统计

群里看到一个题目,如下图

6cd9d8f12065fc1e5bb39b95217369aa.png

感觉挺有意思,于是就写了一下这个sql。最要是活用minute和date_format函数

sql如下SELECT DATE_ADD(CONCAT(DATE_FORMAT(CreateTime,'%Y-%m-%d %H:'),FLOOR(MINUTE(CreateTime)/10),"0:00"),INTERVAL 10 MINUTE) TIME,COUNT(ID) ReqCount

FROM RequestInfo

WHERE CreateTime >='2014-01-01' AND CreateTime

GROUP BY

DATE_ADD(CONCAT(DATE_FORMAT(CreateTime,'%Y-%m-%d %H:'),FLOOR(MINUTE(CreateTime)/10),"0:00"),INTERVAL 10 MINUTE)

ORDER BY TIME

建表语句如下CREATE TABLE `requestinfo` (

`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

`CreateTime` datetime NOT NULL,

PRIMARY KEY (`ID`),

KEY `CreateTime` (`CreateTime`)

) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8

适当插入数据如下insert into `requestinfo` (`ID`, `CreateTime`) values('1','2014-01-01 00:00:01');

insert into `requestinfo` (`ID`, `CreateTime`) values('2','2014-01-01 00:00:02');

insert into `requestinfo` (`ID`, `CreateTime`) values('3','2014-01-01 00:00:03');

insert into `requestinfo` (`ID`, `CreateTime`) values('4','2014-01-01 00:10:01');

insert into `requestinfo` (`ID`, `CreateTime`) values('5','2014-01-01 00:20:02');

insert into `requestinfo` (`ID`, `CreateTime`) values('6','2014-01-01 00:35:12');

insert into `requestinfo` (`ID`, `CreateTime`) values('7','2014-01-01 00:55:59');

运行sql语句,得到结果如下

89210dce4f837879531b62c809cf9229.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值