我在Trans
表中有一组数据。其中包含多个transno
事务。我需要获取每个transno
的最新交易记录。
这些数据存储在Oracle数据库中。
我已经尝试过下面的查询,每次都很少更改。但是我只给一个原料。该表包含超过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