Это зависит от того, что вы хотите сохранить и что вы хотите удалить. Поскольку ID является ключом, я предполагаю, что нет повторяющихся идентификаторов, но есть дублированные пары тип / имя. Итак, вот идея, как их удалить:
delete from my_table t1
where exists (select 1
from my_table t2
where t2.type = t1.type
and t2.name = t1.name
and t2.id < t1.id)
Это сохранит «дубликат» с самым низким ID
and t2.id > t1.id
Это будет держать "дубликат" с самым высоким ID