今天拿到一个查询需求需要统計某一天各个时间段内的记录数量。
具体是统计某天9:00至22:00时间段每半小时内订单的数量,最后形成的数据形式如下:
如果说是按每个小时來统计订单数量这个是比较简单的,只要将订单表中的OrderTime字段中的小时取出然后根据每个小时的值进行group by就可以了。
但是如果要实现上面嘚那种查询就有点麻烦了我想到的一种实现方案是:取出每个订单的时间字段中的“小时和分钟”,将这个时间转换为距凌晨的分钟数如:9:00转换后就是540,9:30转换后就是570
2、每条条订单记录的分钟数设为:timehour
这样可以将各个时间段内的时间统一到一个分组编号中去。如下:
这樣一来就把各个时间段内的时间转换成对应的某一个分组编号了,这样我们就可以对每个groupid进行分统计每个组内的订单数了
下面是完整嘚sql语句:
公式很简单SUMIFS可以得
细心你的已經发现了我公式的原理,第一个参
另外条件里面的月和日
我使用了两位数,因为这
样两位数才能正确比较
否则结果是不正确的,你的數据里面的月和日都得使用两位数
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或許有别人想知道的答案。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。