この実行を複数回試すことができます :
delete from mytable where id in (
select max(id)
from mytable
group by name
having count(1) > 1
);
複数回 name
での最大繰り返し回数に等しい 列。
それ以外の場合は、次のより複雑なクエリを試すことができます:
delete from mytable where id in (
select id from mytable
except
(
select min(id)
from mytable
group by name
having count(1) > 1
union all
select min(id)
from mytable
group by name
having count(1) = 1
)
);
このクエリを1回だけ実行すると、必要なものがすべて削除されます。まだ試していません...