sql >> Base de Datos >  >> RDS >> Mysql

Encuentre valores duplicados asignados a más de un valor único

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

Sugiero usar expresiones de tabla comunes con particiones de números de fila. Esto crea un conteo (RN) de cada instancia de Desc19.

No puedo probar la consulta en este momento, pero mantenme actualizado sobre tus resultados y puedo ajustar desde allí.

EDITAR

Si DBVersionKey no es un valor único, intentaría:

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

Déjame saber si eso funciona mejor.

EDITAR 2

Una vez más, no puedo probarlo. Agregando a la primera consulta sugerida:

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