我想从下面的示例表中获取每个不同名称的单个记录,其中包含最新的日期。
我希望查询的结果能够给出:
Mark Checked_in 04-AUG-15 Blue
Dan Checked_in 08-JUL-15 Yellow
示例表:
Name Action Date Color
Mark Checked_in 04-AUG-15 Blue
Mark Checked_in 02-AUG-15 Black
Dan Checked_in 02-JUL-15 Orange
Dan Checked_in 08-JUL-15 Yellow
答案 0 :(得分:2)
WITH WithRN as (SELECT Name
, Action
, "Date"
, Color
, row_number() over (partition by Name order by "Date" desc) as RN
FROM tableName)
SELECT Name, Action, "Data", Color
FROM WithRN
WHERE RN = 1
分析函数通常表现更好,然后使用聚合加入self。
答案 1 :(得分:0)
使用内联视图生成包含唯一值和最大日期值的子集。这里我假设为Name,然后将其连接回基集以产生所有需要的列,并且仅记录在这种情况下,问题最大(日期)。
file_url
假设每个名称的日期都是唯一的。