微信号:phpdaily

介绍:PHP在线专注于PHP编程语言学习,PHP开发经验分享,工作问题解决以及PHP在线技能测评等多功能为一体的服务系统,希望给工作学习中的PHPER带来些帮助。

SQL小技巧:分组时按每几小时分组

2018-09-12 13:48 shenyi

先看个图, 我瞎jb填充了一些数据

一、按时间分组  这SQL太简单 (假设颗粒度只到小时)

select mykey,DATE_FORMAT(dtime,’%Y-%m-%d %H’) from test 
GROUP BY DATE_FORMAT(dtime,’%Y-%m-%d %H’)  ,mykey

就不贴图了

二、如果要求是按照 每隔2小时或3小时,或5小时 来进行分组 呢

  其实 有个小技巧在这里, 使用 div函数 (整除)

  譬如 select 10 div 2   ——5

   select 7 div 3  —– 2

  语句就变成了这样 (譬如按5小时,要按其他小时 自己改)

   select mykey,DATE_FORMAT(dtime,’%Y-%m-%d),hour(dtime) div 5 from test 
GROUP BY DATE_FORMAT(dtime,’%Y-%m-%d‘),hour(dtime) div ,mykey

  

 当然,大家做分组往往是要配合聚合函数的(譬如sum),但是 我tmd弄测试数据时 弄的是字符串,不高兴改了。累,天太热。

 于是,把语句改了改,把每隔5小时的mykey 叠加起来 

select GROUP_CONCAT(mykey),DATE_FORMAT(dtime,’%Y-%m-%d’) as dtime,hour(dtime) div 5   from test 
GROUP BY DATE_FORMAT(dtime,’%Y-%m-%d’) ,hour(dtime) div 5 

转载请注明来源:SQL小技巧:分组时按每几小时分组 - 沈逸的个人站点


 
PHP在线 更多文章 PHP中很屌但经常被各种忽略的过滤器函数 世界已经无法阻挡Python入侵。 MySQL常用的SQL查询语句 MySQL常用的函数 最实用的PHP Composer教程
猜您喜欢 留言点赞获赠书 | 使用 Virtual SAN 实现策略驱动的存储设计 美云智数副总经理黄侃:美的集团数字化转型之路 “我养你啊,别敲代码了行不行!” 纸上得来终觉浅 | 跨链实战 Basecoin 从微信直接唤起App——【提活拉新】你必须知道的事