Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявка за намиране на дубликатите между името и номера в таблицата

Актуализиран въпрос

"Вземете дубликат както за номер, така и за име" ... "име и номер като различна колона"
Тук редовете могат да се преброят два пъти!

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

Оригинален въпрос

Проблемът е, че заявката се групира по

GROUP  BY lower(name), number

Тъй като ред 3 и 4 имат различни number , те не са еднакви за тази заявка.

Ако искате да игнорирате различни числа за тази заявка, опитайте нещо като:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете име на поле от две думи в mySQL, извикано от PHP

  2. Доктрина, объркваща заявки за обекти с разширение

  3. MySQL UTF8 експортиране на Windows - импортиране на Linux

  4. Използване на sqlalchemy за заявка с помощта на множество колони където в клауза

  5. Намерете стойности, които не съдържат числа в MySQL