sql 如何按半小时分组

2025-10-06 17:58:26

1、首先,来理一下解决思路。 所谓的按半小时分组就是将半小时内的时间划为一组,比如:

2019-01-01 00:31 

2019-01-01 00:32

2019-01-01 00:33

被分到2019-01-01 00:30这一组

2019-01-01 00:01 

2019-01-01 00:02

2019-01-01 00:03

辈分到

2019-01-01 00:00这一组,

看一下原表数据,那前4条应该被归到2015-07-27 17:30这组,第5条到第10条应该被归到2015-07-27 18:00这组

sql 如何按半小时分组

2、根据具体数据,我们看一下写出来的SQL语句,大概就是先利用UNIX_TIMESTAMP函数将url_state_date字段转化成秒,其表示从1970-01-01 00:00:00到url_state_date所经历的秒数,暂时定义为state_date_sec,然后对其做半小时的向下取整,最后再做Group归并。

1800秒:半小时

floor(state_date_sec/1800) : 对于半小时的个数做向下取整

floor(state_date_sec/1800) * 1800: 取得整半小时的时间

sql 如何按半小时分组

3、运行后查看结果,可以看到 2015-07-27 17:30这组有4条数据,2015-07-27 18:00这组有6条数据,符合我们之前的推理。

sql 如何按半小时分组

sql 如何按半小时分组

4、如上我们是对半小时做向下取整的,根据需求我们也可以做向上取整,此时,我们只需将函数floor换成ceill

1800秒:半小时

ceil(state_date_sec/1800) : 对于半小时的个数做向下取整

ceil(state_date_sec/1800) * 1800: 取得整半小时的时间

sql 如何按半小时分组

5、现在我们对于分组的url_state_date只是做了个数的统计,count函数,那数据库中还有其他更加丰富的函数,比如,max,min,avg等统计函数,大家可以根据自己的需求来做选择

sql 如何按半小时分组

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢