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

Requête pour trouver les doublons entre le nom et le numéro dans la table

Question mise à jour

"Obtenir des doublons sur le numéro et le nom" ... "le nom et le numéro dans une colonne différente"
Les lignes peuvent être comptées deux fois !

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

Question initiale

Le problème est que la requête regroupe par

GROUP  BY lower(name), number

Comme les rangées 3 et 4 ont un différent number , ils ne sont pas les mêmes pour cette requête.

Si vous souhaitez ignorer différents nombres pour cette requête, essayez quelque chose comme :

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