Wypróbuj kroki opisane w tym artykule:Usuwanie duplikatów z bazy danych PostgreSQL.
Opisuje sytuację, w której masz do czynienia z ogromną ilością danych, których nie można group by .
Prostym rozwiązaniem byłoby to:
DELETE FROM foo
WHERE id NOT IN (SELECT min(id) --or max(id)
FROM foo
GROUP BY hash)
Gdzie hash jest czymś, co się duplikuje.