首页 > 解决方案 > 返回 Toad 中的最新行

问题描述

所以我有一个在 Toad 中看起来像这样的数据框:

ID    Total_Amt   date1        date2      Name1   Name2
1     16          11/1/12      6/30/12    BOB     JON
1     17          11/1/13      7/12/13    BILL    JACK
1     17          11/1/13      7/1/13     BEN     ADA
1     18          11/1/14      11/5/14    JEFF    ALAN
1     18          11/1/14      11/1/14    JERI    FRANK

我的目标是只返回每个 date1 的最新行。因为我只有一排 11/1/12 那将是我最近的。但是对于 date1 中的 11/1/13,有两行具有相同的日期。因此,我想查看 date2 并说好吧,我最近的日期是 7/12/13,所以我只想返回该行而不是两者。

我得到的数据框如下:

 ID    Total_Amt   date1        date2      Name1   Name2
1     16          11/1/12      6/30/12    BOB     JON
1     17          11/1/13      7/12/13    BILL    JACK
1     18          11/1/14      11/5/14    JEFF    ALAN

我只关心与每个日期有关的最新行,所以如果 date1 中有多个日期具有相同的日期,那么我希望它仅通过使用 date2 并查看什么是最新的该字段中 date1 中找到的日期的最新日期。

标签: sqloracleoracle12c

解决方案


使用row_number()窗口函数

select ID ,Total_Amt,date1,date2,Name1,Name2 from    
(
 select ID ,Total_Amt,date1,date2,Name1,Name2,
 row_number() over(order by date1 desc,date2 desc) rn from table_name
) t where rn=1

推荐阅读