sql >> Database >  >> RDS >> PostgreSQL

Dubbele records vinden in PostgreSQL

Het basisidee is het gebruik van een geneste zoekopdracht met telling-aggregatie:

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

U kunt de where-component in de binnenste query aanpassen om de zoekopdracht te verfijnen.

Er is nog een andere goede oplossing die in de opmerkingen wordt genoemd (maar niet iedereen leest ze):

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

Of korter:

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


  1. Splits één kolomwaarde in meerdere kolomwaarden

  2. Linkervulling in SQL Server – 3 LPAD()-equivalenten

  3. Beperkingen voor kruistabel in PostgreSQL

  4. Hoe te groeperen op maand vanuit het veld Datum met sql