Je kunt dit proberen meerdere keren :
delete from mytable where id in (
select max(id)
from mytable
group by name
having count(1) > 1
);
Waar meerdere keren is gelijk aan het maximale aantal herhalingen dat je hebt in name
kolom.
Anders kunt u deze complexere zoekopdracht proberen:
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
)
);
Als u deze query maar één keer uitvoert, moet u alles verwijderen wat u nodig hebt. Heb het echter nog niet geprobeerd...