oracle

关注公众号 jb51net

关闭
首页 > 数据库 > oracle > Oracle去重方式

Oracle去重4种实现方式小结

作者:風F

这篇文章主要给大家介绍了关于Oracle去重4种实现方式的相关资料,在Oracle数据库中有时候我们需要查询多个列并去除重复值,文中通过代码介绍的非常详细,需要的朋友可以参考下

去重

1.distinct去重

select distinct name,age from test

2.group by 去重

select name,age from test group by name,age;

3.rowid(伪列去重)如果 step_id 也要要求去重就把条件加上去,如果不需要去重则不加

select sfc_no,step_id from AAA_HC t1
where t1.rowid in (select min(rowid) from AAA_HC t2 where t1.sfc_no=t2.sfc_no
--and t1.step_id=t2.step_id
);

4.窗口函数row_number () over() 去重  如果 step_id 也要要求去重就把条件加上去,如果不需要去重则不加

select t.sfc_no ,t.step_id from
(select row_number() over(partition by sfc_no
--,step_id
order by step_id) rank,AAA_HC.* from AAA_HC)t
where t.rank = 1;

row_number()  over(partition by SFC_NO order by CREATE_DATE desc) rn

为新增一个名为rn的排名的列,partition by 列名(需要分组的列) order by 列名(需要排名的列)
结果

SFC_NO    CREATE_DATE   rn
aaa          2022-09-22        1
aaa          2022-09-21        2
aaa          2022-09-20        3
bbb          2022-09-22        1
bbb          2022-09-21        2
bbb          2022-09-20        3

总结

到此这篇关于Oracle去重4种实现方式的文章就介绍到这了,更多相关Oracle去重方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文