Du kan prøve dette at køre flere gange :
delete from mytable where id in (
select max(id)
from mytable
group by name
having count(1) > 1
);
Hvor flere gange svarer til det maksimale antal gentagelser, du har i name
kolonne.
Ellers kan du prøve denne mere komplekse forespørgsel:
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
)
);
Hvis du kun kører denne forespørgsel én gang, bør du slette alt, hvad du har brug for. Har dog ikke prøvet det...