sql >> Databáze >  >> RDS >> PostgreSQL

Jak najít duplicitní záznamy v PostgreSQL

Základní myšlenkou bude použití vnořeného dotazu s agregací počtu:

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

Můžete upravit klauzuli where ve vnitřním dotazu a zúžit tak hledání.

Pro to, co je zmíněno v komentářích, existuje další dobré řešení (ale ne všichni je čtou):

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

Nebo kratší:

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


  1. Řádek aktualizace Android SQLite nefunguje

  2. SQLite AUTOINCREMENT

  3. Cloud Vendor Deep-Dive:PostgreSQL v Microsoft Azure

  4. null vs prázdný řetězec v Oracle