【經典SQL】刪除表中重複的記錄
阿新 • • 發佈:2019-01-01
考慮到這種SQL用到的還是比較多,故在此記錄一下。
問題 從表中刪除重複的記錄,考慮如下表結構資訊:
create table dupes (id integer,name varchar(10)); insert into dupes values(1,'NAPOLEON'); insert into dupes values(2,'DYNAMITE'); insert into dupes values(3,'DYNAMITE'); insert into dupes values(4,'SHE SELLS'); insert into dupes values(5,'SHE SELLS'); insert into dupes values(6,'SHE SELLS'); insert into dupes values(7,'SHE SELLS');
select * from dupes order by 1;
對於每個像“SHE SELLS”這樣重複的姓名組,只任意保留其中一個的ID,並將其餘的記錄刪除掉。
解決方案如下:
delete from dupes where id not in (select min(id) from dupes group by name)