【发布时间】:2014-11-01 15:17:29
【问题描述】:
我有一个记录字段数据收集的表,将组中的每个数据 sn-p 作为单独的行(例如,一个项目的长度和宽度都是表中的一行)。
我想显示按最近日志条目的时间戳排序的日志结果,按项目分组。
我在子选择、连接等中尝试了各种风格的 max(timestamp),但没有任何乐趣。
基本上,像这样(简化以便更容易输入):
item | timestamp | data
G | 1000 | yellow
D | 1001 | blue
C | 1002 | red
G | 1003 | green
D | 1004 | pickle
Z | 1005 | trotsky
我希望我的结果集排序为:
G | 1000 | yellow
G | 1003 | green
D | 1001 | blue
D | 1004 | pickle
C | 1002 | red
Z | 1005 | trotsky
这意味着按项目分组,按时间戳排序,但这当然不起作用,因为我需要所有行,这会将项目 A 放在列表的顶部,而不是最近记录的项目。
显然我错过了解决方案的真正意义。 GROUP BY 不起作用,因为我仍然需要返回所有行,因此某种 JOIN 似乎是有意义的,我只需要 oracle 来学习如何构建它。
【问题讨论】:
-
你可以为你的问题准备SQLFiddle snippet吗?