Tente as etapas descritas neste artigo:Removendo duplicatas de um banco de dados PostgreSQL.
Ele descreve uma situação em que você tem que lidar com uma grande quantidade de dados que não é possível
group by
. Uma solução simples seria esta:
DELETE FROM foo
WHERE id NOT IN (SELECT min(id) --or max(id)
FROM foo
GROUP BY hash)
Onde
hash
é algo que se duplica.