Oracle SQL 按小时时间段(slab)统计订单量的查询语句写法
Oracle按小时时间段统计订单量SQL实现
实现逻辑
- 先将
CREATE_DATETIME时间戳按小时截断,作为分组维度 - 拼接生成要求的12小时制时间段格式(如
1-2 PM) - 分组统计每个时间段的订单总数
可用查询语句
SELECT COUNT(CUST_ORDER_NO) AS "COUNT", TO_CHAR(TRUNC(CREATE_DATETIME, 'HH'), 'FMHH') || '-' || TO_CHAR(TRUNC(CREATE_DATETIME, 'HH') + INTERVAL '1' HOUR, 'FMHH AM') AS "SLAB" FROM CUSTOMER_ORDERS GROUP BY TRUNC(CREATE_DATETIME, 'HH') ORDER BY TRUNC(CREATE_DATETIME, 'HH');
说明
如果你的场景需要同时区分不同日期的同时间段,只需要把日期字段补充到查询和GROUP BY逻辑中即可。针对你给出的示例测试数据,该查询输出结果为:
| COUNT | SLAB |
|---|---|
| 2 | 3-4 PM |
内容的提问来源于stack exchange,提问作者Imran Hemani
相关产品推荐
相关产品推荐

