ORACLE查询时需要返回多个字段(例如:A/B/C/D/E/F),但是字段A或者字段A+B不唯一,此时需要实现分页加根据字段A或者字段A+B去重,其中A还是类似于工号之类的字段,此时distinct/group by都无法满足业务需求,最终使用下面的去重方法解决问题。备忘一下。
select * from ( select tf.*,ROW_NUMBER() OVER(PARTITION BY ** ORDER BY * DESC ) RN from info tf ) from test where test .rn = 1
PARTITION BY 后面可以跟多个字段(待返回的字段),依据该字段对结果集进行重新分组,
后面的ORDER BY是指定对应字段排序,然后ROW_NUMBER()对重新分组的结果集进行编号,rn = 1表示重新分组后的结果集每组数据内部的编号,为1表示如果重新分组结果集存在多条时只取第一条。