Oracle SQL - 小时板

Oracle SQL - hour slabs

我有以下数据:

CUSTOMER_ORDERS:

CUST_ORDER_NO CREATE_DATETIME
WEB904204965    17-SEP-21 03.12.45.719000000 PM
WEB904204966    17-SEP-21 03.16.45.719000000 PM

我想查看每小时的订单数量,例如:

COUNT SLAB
2     1-2 PM
4     2-3 PM

如何编写查询?

您可以 trunc date/time 或仅提取 hour 组件,然后 GROUP BY 该表达式。

这是一个带有样本 SQL 的测试用例:

Working Test Case with a little data

SELECT COUNT(*) AS n
     , to_char(dt, 'HH') AS slab
  FROM test
 GROUP BY to_char(dt, 'HH')
;

结果:

我们可以使用 'HH24' 显示 24 小时值或 'HH AM' 显示 'hours plus AM/PM' 指标。

SELECT to_char(current_date, 'HH24') AS slab FROM dual;

SELECT to_char(current_date, 'HH AM') AS slab FROM dual;