Oracle表中重复数据去重的方法

Posted 小胡的技术之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle表中重复数据去重的方法相关的知识,希望对你有一定的参考价值。

前言

我们在项目中肯定会遇到一种情况,就是表中没有主键 有重复数据 或者有主键 但是部分字段有重复数据 而我们需要过滤掉重复数据 

解决方案

delete from mytest ms 

 where rowid in (select aa.rid 

          from (select rowid as rid, 

                row_number() over(partition by s.name order by s.id) as nu 

              from mytest s) aa 

         where aa.nu > 1) 

row_number() over是分析函数 可以获得当前分组的出现次数 如果有重复的就会累加 2,3,4。。。这种,我们删除掉大于1的即可 删除通过rowid来删除。测试过,好用

PS:最近有点懒惰了。。。。。。。。。。。。。。。。。。。。。。。。。。

以上是关于Oracle表中重复数据去重的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何解决Oracle数据库中重复数据的方法步骤

Oracle海量数据(1000w+)重复数据删除方法

oracle 数据去重问题,要求去掉表中的重复数据,但得保留重复数据中MD的值最小的那条数据

Greenplum/PostgreSQL中数据表数据去重的几种方法

巧用MapReduce+HDFS,海量数据去重的五种方法

Oracle数据去重