sql >> Databáze >  >> RDS >> Mysql

Dotaz na nalezení duplikátů mezi jménem a číslem v tabulce

Aktualizovaná otázka

"Získat duplikát pro číslo i jméno" ... "jméno a číslo jako jiný sloupec"
Řádky lze zde počítat dvakrát!

SELECT lower(name), NULL AS number, count(*) AS ct
FROM   tbl
GROUP  BY lower(name)
HAVING count(*) > 1

UNION  ALL
SELECT NULL, number, count(*) AS ct
FROM   tbl
GROUP  BY number
HAVING count(*) > 1;

-> sqlfiddle

Původní otázka

Problém je v tom, že dotaz seskupuje podle

GROUP  BY lower(name), number

Protože řádek 3 a 4 mají jiné number , nejsou pro tento dotaz stejné.

Pokud chcete u tohoto dotazu ignorovat různá čísla, zkuste něco jako:

SELECT lower(name)
     , count(*) AS ct
FROM   tbl
GROUP  BY lower(name)
HAVING count(*) > 1;


  1. Jak generovat skripty pro opětovné vytvoření omezení cizích klíčů v databázi SQL Server - SQL Server / Výukový program TSQL, část 73

  2. Co je databáze? Definice, typy a komponenty

  3. Codeigniter Cart - ukládání dat do databáze - jak přistupovat?

  4. MySQL přeskočit prvních 10 výsledků