去重的方法

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

下面是一种解决方法

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来删除

posted @ 2020-01-14 12:02  systemctl1  阅读(503)  评论(0编辑  收藏  举报