PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So finden Sie doppelte Datensätze in PostgreSQL

Die Grundidee wird eine verschachtelte Abfrage mit Zählaggregation sein:

select * from yourTable ou
where (select count(*) from yourTable inr
where inr.sid = ou.sid) > 1

Sie können die where-Klausel in der inneren Abfrage anpassen, um die Suche einzugrenzen.

Es gibt eine andere gute Lösung für das, was in den Kommentaren erwähnt wird (aber nicht jeder liest sie):

select Column1, Column2, count(*)
from yourTable
group by Column1, Column2
HAVING count(*) > 1

Oder kürzer:

SELECT (yourTable.*)::text, count(*)
FROM yourTable
GROUP BY yourTable.*
HAVING count(*) > 1