码迷,mamicode.com
首页 > 其他好文 > 详细

删除重复记录4种方法

时间:2020-03-28 20:20:20      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:max   方法   and   难点   from   style   span   ice   name   

1.DELETE FROM tab1 a
WHERE rowid < ( SELECT MAX(b.rowid)
FROM tab1 b
WHERE b.name = a.name
AND b.price = a.price );
2.DELETE FROM tab1 a
WHERE EXISTS ( SELECT *
FROM tab1 b
WHERE b.name = a.name
AND b.price = a.price
AND a.rowid < b.rowid );
3.DELETE FROM tab1 a
WHERE rowid IN ( SELECT rowid
FROM tab1
EXCEPT
SELECT MAX(rowid)
FROM tab1
GROUP BY name, price );
4.DELETE FROM tab1 a
WHERE rowid NOT IN ( SELECT MAX(rowid)
FROM tab1
GROUP BY name, price );
第1和第2种方法关联子查询的性能问题是难点。
第3和第4种方法的性能优劣取决于表的规模,以及删除行数与留下的行数之间的比率。

删除重复记录4种方法

标签:max   方法   and   难点   from   style   span   ice   name   

原文地址:https://www.cnblogs.com/jiangqingfeng/p/12588850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!