Sql 返回蟾蜍中最近的行

Sql 返回蟾蜍中最近的行,sql,oracle,oracle12c,Sql,Oracle,Oracle12c,所以我有一个数据框,在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 1

所以我有一个数据框,在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
我的目标是只返回每个日期最近的行1。因为我只有一排是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中找到的日期在该字段中的最近日期。

使用行号窗口功能

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

如果我正在进行多个联接,是否仍然能够执行此操作?如果是的话,我会把这个放在哪里?此外,这些列实际上来自不同的表,它们并不都来自同一个表table@Cannon答案是肯定的,您将能够通过使用不同的连接来做到这一点。你可以在内部查询中使用join如果我发布代码,你能帮我弄清楚如何实现它吗?我仍在努力整合这件作品。