【发布时间】:2014-04-07 09:41:16
【问题描述】:
我有一个包含一些信息和时间示例的表格
+----+-------------------+
| ID | DateTime |
+----+-------------------+
| 1 | 10/1/2014 10:10AM |
| 2 | 10/1/2014 11:00AM |
| 3 | 10/1/2014 12:00AM |
| 4 | 10/1/2014 14:10AM |
| 1 | 10/1/2014 02:30AM |
| 2 | 10/1/2014 10:10AM |
| 1 | 10/1/2014 10:40AM |
+----+-------------------+
我想进行这样的计数选择
from 10:00 to 11:00 ID 1 2 counts ID 2 1 count
from 11:00 to 12:00 ID 3 1 count
from 14:00 to 15:00 ID 4 1 count
from 02:00 to 03:00 ID 1 1 count
所以我想按小时对搜索进行分组,并计算每小时内的每个 ID 我如何在 oracle 选择语句中做到这一点
【问题讨论】:
-
我会研究“日历表”的创建。一个包含您需要报告的每一天的每个小时时段。然后,您的查询只是将日历表过滤到所需的行,然后加入数据的情况。这不仅有助于提高性能,而且还使查询更简单、更整洁。它甚至可以轻松获得输入记录为 0 小时的结果(仅使用左连接)。
-
14:10AM 并不完全有意义 - 首先,因为您不能将 AM/PM 和 24 小时值结合起来,其次,因为 14:10 是下午(至少应该是 PM) .