Mysql
 sql >> Database >  >> RDS >> Mysql

Interroga per trovare i duplicati tra il nome e il numero nella tabella

Domanda aggiornata

"Ottieni duplicati sia sul numero che sul nome" ... "nome e numero come colonne diverse"
Qui le righe possono essere contate due volte!

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

Domanda originale

Il problema è che la query raggruppa per

GROUP  BY lower(name), number

Poiché le righe 3 e 4 hanno un diverso number , non sono gli stessi per questa query.

Se vuoi ignorare numeri diversi per questa query, prova qualcosa come:

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