SQL Duplikace hodnot v tabulce s příkladem – Jak vypsat seznam duplicitních hodnot?

Poslední aktualizace:

V některých situacích si potřebujeme udělat přehled o tom, jaká data se nacházejí v tabulce. Nebo si třeba chceme zkontrolovat jestli se v tabulce nenachází duplikace hodnot, které tam nechceme. Jak vypsat seznam takových duplicitních hodnot?

Jak zjistit duplikaci řádků v tabulce?

Úlohu budu demonstrovat na jednoduchém příkladu. Mějme tabulku se zákazníky, která se jmenuje DimCustomer (viz. obrázek níže). Naše databáze zákazníků má zhruba 20000 záznamů a chceme ověřit jestli se v databázi nenacházejí zákazníci, kteří jsou tam vícekrát, protože každého zákazníka chceme evidovat pouze jednou.

sql duplikace hodnot - příklad

Nejprve si musímě uvědomit, přes které hodnoty budeme duplicity zjišťovat. Nemůžeme to dělat třeba přes sloupec jméno, protože to může mít spousta lidí stejné. Nevhodný je také způsob testovat duplicity osob přes email, protože stejného člověka můžeme mít v databázi 2x s různými emaily a na duplicitu bychom nepřišli. Nejspolehlivější by bylo testovat duplicity přes nějaký jedinečný identifikátor osoby, třeba rodné číslo. To ale my v tabulce nemáme. Nezbývá tedy než vymyslet jiný způsob.

Řekněme, že v našem případě pro ilustrativní účely by mělo být poměrně spolehlivé pokud řekneme, že by se měli vyskytovat jedinečné kombinace hodnot přes Jméno, Příjmení, Pohlaví a Datum narození.

SELECT
   [FirstName]
  ,[LastName]
  ,[BirthDate]
  ,[Gender]
  ,COUNT(*)
FROM [AdventureworksDW2016CTP3].[dbo].[DimCustomer]
GROUP BY
   [FirstName]
  ,[LastName]
  ,[BirthDate]
  ,[Gender]
HAVING COUNT(*) >1

Skript je celkem jednoduchý a necháme si vypsat všechny osoby, které mají počet shodných kombinací FirstName, LastName, BirthDate, Gender větší než 1. Výsledkem je 5 záznamů a u všech záznamů došlo k situaci, že se v tabulce DimCustomer nacházejí tito lidé 2x (počet duplikací = 2)

pocet duplikaci v sql tabulce

Jak se vám líbil článek?

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..