sql >> Database >  >> RDS >> Mysql

Vind dubbele waarden die aan meer dan één unieke waarde zijn toegewezen

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

Ik raad aan om algemene tabeluitdrukkingen te gebruiken met rijnummerpartities. Dit creëert een telling (RN) van elke instantie van Desc19.

Ik kan de zoekopdracht nu niet testen, maar houd me op de hoogte van je resultaten, dan kan ik me vanaf daar aanpassen.

BEWERKEN

Als DBVersionKey geen unieke waarde is, zou ik het proberen:

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

Laat me weten of dat beter werkt.

BEWERK 2

Nog een, ik kan het niet testen. Toevoegen aan de eerste voorgestelde zoekopdracht:

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. Coderingsprobleem in AJAX

  2. Java:Io-uitzondering:de netwerkadapter kon geen verbinding tot stand brengen

  3. Voorloop- en volgnullen toevoegen in SQL Server

  4. Een SQL Server Monitoring Tool kiezen die aan uw behoeften voldoet