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