Oracle中查询多个字段之后需要排序之后,根据一个字段进行去重

背景:

  接近年尾,公司项目上的人员按局方要求进行一些统计工作,需要我帮忙写个语句,本以为是信手拈来,写的时候发现自己其实也不是很懂,正好学习了一波;内容就是要求根据id获取到数据库中的所有数据,并根据登记时间获取到结果中时间最近的一条数据。

 

解决方法:

本以为order by 、group by 、distinct就可以解决,但是实际上还是存在问题,通过查了一些资料,发现下面语句可解决此问题:

select * from (

select tf.*,ROW_NUMBER() OVER(PARTITION BY ** ORDER BY * DESC ) RN from table tf

) test where test .rn = 1

 

posted @ 2022-01-25 16:21  为了忘却的纪念丶  阅读(612)  评论(0编辑  收藏  举报