删除重复数据
表A中有ID、NAME、CODE字段。要查出NAME、CODE字段重复的数据,重复的记录中,仅保留ID最大的,删除其它重复的数据。
查询需要删除的记录sql如下:
比较笨的SQL:
select * from test where id in (select b.id from test a, test b where a.name = b.name and a.code = b.code group by b.id having count(b.id) > 1) and id not in (select max(id) from test where id in (select b.id from test a, test b where a.name = b.name and a.code = b.code group by b.id having count(b.id) > 1) group by name, code)
select * from test t1 where exists (select 1 from test t2 where t1.code = t2.code and t1.name = t2.name and t1.id != t2.id) and t1.id not in (select max(id) from test group by name, code)