Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abfrage, um die Duplikate zwischen dem Namen und der Nummer in der Tabelle zu finden

Aktualisierte Frage

"Duplikate für Nummer und Namen erhalten" ... "Name und Nummer als unterschiedliche Spalte"
Hier können Zeilen doppelt gezählt werden!

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

Ursprüngliche Frage

Das Problem ist, dass die Abfrage gruppiert nach

GROUP  BY lower(name), number

Da Zeile 3 und 4 eine unterschiedliche haben number , sie sind für diese Abfrage nicht gleich.

Wenn Sie verschiedene Nummern für diese Abfrage ignorieren möchten, versuchen Sie Folgendes:

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