1,目的:
删除部分字段有重复的数据,保留其中一条记录数据
2,效果图:
处理前:
处理后:
3,SQL
delete FROM Atable WHERE EXISTS (
SELECT id FROM( SELECT name, code FROM Atable GROUP BY name, code HAVING COUNT ( * ) > 1 ) tableabc
WHERE Atable.name= tableabc.name AND Atable.code= tableabc.code )
AND id NOT IN (
SELECT MIN(id) FROM Atable GROUP BY name,code HAVINGCOUNT ( * ) > 1)
解释:抽取Atable表的重复数据,作为一个临时表tableabc,将tableabc与Atable联查,抽取出重复的部分,只保留重复数据中最小id的一条记录数据。