Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie, aby znaleźć duplikaty między nazwiskiem a numerem w tabeli

Zaktualizowane pytanie

„Zdobądź duplikat zarówno dla numeru, jak i dla nazwiska” ... „nazwisko i numer w innej kolumnie”
Wiersze można tutaj policzyć dwukrotnie!

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

Pierwotne pytanie

Problem polega na tym, że zapytania grupują się według

GROUP  BY lower(name), number

Ponieważ wiersze 3 i 4 mają różne number , nie są takie same dla tego zapytania.

Jeśli chcesz zignorować różne liczby dla tego zapytania, wypróbuj coś takiego:

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. Jak usunąć całą bazę danych MySQL

  2. Pełne łączenie MySql (unia) i porządkowanie w wielu kolumnach dat

  3. PHP MySql nieznany host serwera

  4. MySQL — użycie COUNT(*) w klauzuli WHERE

  5. Jak usunąć wiodące białe znaki w MySQL?