SQL exists 删除重复记录

 

从表中删除重复记录,保留ID最大值的一条,以及无重复的记录

delete from T 
where exists
(
select 1 from T b
where T .fDGUID=b.fDGUID
and T.fDInTime=b.fDInTime
and T.id<b.id
)

需要注意的是“delete from T ”不能使用表别名;

效率

表中无索引,160万条记录,重复记录49万条;

测试了两次,分别用时15秒、9秒;

 

另外,曾经测试过,如果用“IN”查询重复记录,效率非常差。

具体脚本就不写出来了,网上应该有,可以参考。

posted on 2017-06-01 17:07  一个人上路  阅读(771)  评论(0编辑  收藏  举报

导航