假设我在 Oracle 11g 表中有以下信息:
Qty Production order Date and time
--- ----------------- ---------------
20 00000000000000001 12-JAN-14 00:02
20 00000000000000001 12-JAN-14 00:05
20 00000000000000001 12-JAN-14 00:07
20 00000000000000001 13-JAN-14 00:09
30 00000000000000002 12-JAN-14 00:11
30 00000000000000002 12-JAN-14 00:15
30 00000000000000002 12-JAN-14 00:20
30 00000000000000002 14-JAN-14 00:29
我想编写一个返回以下内容的查询:
Qty Production order First Last
--- ----------------- --------------- ---------------
80 00000000000000001 12-JAN-14 00:02 13-JAN-14 00:09
120 00000000000000002 12-JAN-14 00:11 14-JAN-14 00:29
也就是说,按Production order分组的Qty列的总和,以及每个Production order的第一个和最后一个记录的日期/时间。我想出了一个产生这个结果的查询:
Qty Production order First Last
--- ----------------- --------------- ---------------
80 00000000000000001 12-JAN-14 00:02 14-JAN-14 00:29
120 00000000000000002 12-JAN-14 00:02 14-JAN-14 00:29
这意味着First和Last列显示整个表的总体第一个和最后一个日期/时间。请注意,这是一个虚拟表。抱歉,我现在可以编写我提出的实际查询,因为工作政策不允许我分享它。此外,我尝试使用诸如rank()和row_number()之类的窗口函数,但我的用户没有足够的权限这样做。任何帮助或提示将不胜感激。