我在Trans表中有一组数据。其中包含多个transno事务。我需要获取每个transno的最新交易记录。
这些数据存储在Oracle数据库中。

sql - 获取ORACLE中每个数字的最新记录-LMLPHP

我已经尝试过下面的查询,每次都很少更改。但是我只给一个原料。该表包含超过1m条记录。

select * from (select transid,transno,transdate,transtypefrom trans order by TRANSID desc) where rownum <= 1

请帮忙。

最佳答案

您需要使用ROW_NUMBER窗口功能为所有transdate获取最新的transno

select * from
(
select  transid,transno,transdate,transtype,
Row_number()over(partition by transno order by transdate desc) as rn
from trans
) where RN = 1

08-07 05:05