繁体   English   中英

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

[英]Get latest records of each number in ORACLE

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

在此处输入图片说明

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

select * from (select transid,transno,transdate,transtype from 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

让我知道这个是否奏效。

SELECT * FROM trans GROUP BY transno ORDER BY transid DESC LIMIT 1

我不是MySQL的高手,所以让我知道。

此解决方案的最佳方法是@Prdp的方法。 但是,还有另一种方式。 您可以像这样使用inline view

select * from 
trans t
inner join 
(
   select transno, max(transdatetime) maxtransdatetime from trans group by transno
) s
on s.transno = t.transno and s.maxtransdatetime = t.transdatetime 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM