Mysql
 sql >> Database >  >> RDS >> Mysql

Trova valori duplicati assegnati a più di un valore univoco

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

Suggerisco di utilizzare espressioni di tabella comuni con partizioni di numeri di riga. Questo crea un conteggio (RN) di ogni istanza di Desc19.

Non posso testare la query in questo momento, ma tienimi aggiornato sui tuoi risultati e da lì posso adattarmi.

MODIFICA

Se DBVersionKey non è un valore univoco, proverei:

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

Fammi sapere se funziona meglio.

MODIFICA 2

Ancora una volta, non posso provarlo. Aggiunta alla prima query suggerita:

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