Oracle表中重复数据去重的方法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Oracle表中重复数据去重的方法

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

 2014/8/22 21:12:42  字母哥  程序员俱乐部  我要评论(0)
  • 摘要:我们在项目中肯定会遇到一种情况就是表中没有主键有重复数据或者有主键但是部分字段有重复数据而我们需要过滤掉重复数据下面是一种解决方法deletefrommytestmswhererowidin(selectaa.ridfrom(selectrowidasrid,row_number()over(partitionbys.nameorderbys.id)asnufrommytests)aawhereaa.nu>1)row_number(
  • 标签:方法 ORA 数据 Oracle
我们在项目中肯定会遇到一种情况
就是表中没有主键 有重复数据
或者有主键 但是部分字段有重复数据
而我们需要过滤掉重复数据
下面是一种解决方法
class="java">
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来删除
发表评论
用户名: 匿名