Oracle去重4种实现方式小结
更新时间:2023年09月10日 09:07:19 作者:風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去重方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Oracle中Union与Union All的区别(适用多个数据库)
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来2012-07-07oracle数据排序后获取前几行数据的写法(rownum、fetch方式)
项目中用到Oracle分组查询取每组排序后的前N条记录,group by 只能返回每个组的单条统计,下面这篇文章主要给大家介绍了关于oracle数据排序后获取前几行数据的写法(rownum、fetch方式),需要的朋友可以参考下2022-12-12
最新评论