PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment trouver des enregistrements en double dans PostgreSQL

L'idée de base sera d'utiliser une requête imbriquée avec agrégation de comptage :

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

Vous pouvez ajuster la clause where dans la requête interne pour affiner la recherche.

Il existe une autre bonne solution pour celle mentionnée dans les commentaires (mais tout le monde ne les lit pas) :

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

Ou plus court :

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