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

Znajdź zduplikowane wartości przypisane do więcej niż jednej unikalnej wartości

WITH CTE AS (SELECT DBVersionKey, Desc19, ROW_NUMBER()OVER(PARTITION BY Desc19
ORDER BY Desc19) RN
FROM Table_A)

SELECT * FROM CTE WHERE RN > 1

Proponuję używać wspólnych wyrażeń tabelarycznych z partycjami numerów wierszy. Tworzy to licznik (RN) każdej instancji Desc19.

Nie mogę teraz przetestować zapytania, ale informuj mnie na bieżąco o swoich wynikach, abym mógł je dostosować.

EDYTUJ

Jeśli DBVersionKey nie jest unikalną wartością, spróbowałbym:

SELECT DISTINCT DBVersionKey, Desc19, COUNT(*)
FROM Table_A
Group by DBVersionKey, Desc19

Daj mi znać, jeśli to działa lepiej.

EDYTUJ 2

Jeszcze raz nie mogę tego przetestować. Dodawanie do pierwszego sugerowanego zapytania:

WITH CTE AS (SELECT DBVersionKey, Desc19, ROW_NUMBER()OVER(PARTITION BY Desc19 ORDER BY Desc19) RN 
FROM (SELECT DISTINCT DBVersionKey, Desc19 FROM Table_A GROUP BY DBVersionKey, Desc19)

SELECT * FROM CTE WHERE RN > 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. Inny wynik w skrzypcach SQL i serwerze MySQL/PhpMyadmin

  2. Przekroczono limit czasu oczekiwania na blokadę; spróbuj zrestartować transakcję, mimo że nie używam transakcji

  3. W MySQL, gdy wystąpi błąd zduplikowanego wpisu, jak mogę zapobiec automatycznemu zwiększaniu klucza podstawowego?

  4. Rozwijaj React z pełnym stosem (WAMP) lokalnie

  5. Jak wykonać automatyczną kopię zapasową mysql db za pomocą mysql workbench?