Mysql
 sql >> Base de données >  >> RDS >> Mysql

Rechercher des valeurs en double attribuées à plusieurs valeurs uniques

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

Je suggère d'utiliser des expressions de table courantes avec des partitions de numéros de lignes. Cela crée un décompte (RN) de chaque instance de Desc19.

Je ne peux pas tester la requête pour le moment, mais tenez-moi au courant de vos résultats et je pourrai m'adapter à partir de là.

MODIFIER

Si DBVersionKey n'est pas une valeur unique, j'essaierais :

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

Faites-moi savoir si cela fonctionne mieux.

MODIFICATION 2

Encore une fois, je ne peux pas le tester. Ajout à la première requête suggérée :

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