mysql 时间范围内分时段分组排序
2017-09-03 18:32
453 查看
SELECT nums, count(*) TimesParSum, sum(CHARGE_TOTAL) TimesParSum FROM ( SELECT CASE WHEN REALSTARTTIME >= '20170623000000' AND REALENDTIME < '20170623040000' THEN 1 WHEN REALSTARTTIME >= '20170623040000' AND REALENDTIME < '20170623080000' THEN 2 WHEN REALSTARTTIME >= '20170623080000' AND REALENDTIME < '20170623120000' THEN 3 WHEN REALSTARTTIME >= '20170623120000' AND REALENDTIME < '20170623160000' THEN 4 WHEN REALSTARTTIME >= '20170623160000' AND REALENDTIME < '20170623200000' THEN 5 WHEN REALSTARTTIME >= '20170623200000' AND REALENDTIME < '201706231235959' THEN 6 END as nums FROM order_info WHERE CREATED_USER = '0E566186A56FB870' AND REALSTARTTIME >= '20170623000000' AND REALENDTIME <= '201706231235959' ) t GROUP BY nums order by nums ASC
最近在项目中遇到一个需要对表中的数据,按照一个给定的时间间隔分组并统计个数,需求如图:
解决方案:
如上代码
ps:如果时间区域跨越两个时间段,eg:start 02:00~ end 06:00,这种根据相应的需求进行解决,1:可以取单独一个startTime or endTime进行sql作对比
相关文章推荐
- MySql 分组排序取时间最大的一条记录
- MySQL按最新时间分组排序的实现
- [MySQL]学习笔记- 用户行为表中,查询每个人的一条最新行为(分组 排序 取时间最大的一条记录)
- mysql 分组 排序 取时间最大的一条记录
- mysql 时间范围 查询
- Mysql分组统计、排序、取前N条记录解决方案
- mysql 用case when 解决比较时间大小后在排序的问题
- 【HDU5808 BestCoder Round 86E】【时间排序 树状数组计数 bitsetDP 或分治】Price List Strike Back 距离范围、区间范围商店购物 使得价值和恰为m
- mysql 年月日时分秒 分组排序
- 索引优点(4):降低分组、排序时间
- mysql按照每天分组查询数据结果排序不是从1到31而是1后接10
- Mysql 根据时间戳按年月日分组统计
- 按用户分组按时间排序存储过程
- mysql 分组排序
- MYSQL按时间分组 下一条时间为上一条的开始时间
- Mysql 根据时间戳按年月日分组统计
- mysql 排序两个字段/列表先根据时间升序排序,时间相同再根据商家ID升序排序
- 求MySQL先按大于等于当前时间升序排序,再按小于当前时间降序排序
- Mysql利用group by分组排序
- oracle或mysql分组查询并且获取前3条排序后的数据