Você pode tentar isso executando várias vezes :
delete from mytable where id in (
select max(id)
from mytable
group by name
having count(1) > 1
);
Onde várias vezes é igual ao número máximo de repetições que você tem em
name
coluna. Caso contrário, você pode tentar esta consulta mais complexa:
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
)
);
Executar essa consulta apenas uma vez deve excluir tudo o que você precisa. Ainda não experimentei...