Prova i passaggi descritti in questo articolo:Rimuovere i duplicati da un database PostgreSQL.
Descrive una situazione in cui devi gestire un'enorme quantità di dati che non è possibile group by
.
Una soluzione semplice sarebbe questa:
DELETE FROM foo
WHERE id NOT IN (SELECT min(id) --or max(id)
FROM foo
GROUP BY hash)
Dove hash
è qualcosa che viene duplicato.