Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Finden Sie doppelte Werte, die mehr als einem eindeutigen Wert zugewiesen sind

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

Ich schlage vor, allgemeine Tabellenausdrücke mit Zeilennummernpartitionen zu verwenden. Dadurch wird eine Zählung (RN) jeder Instanz von Desc19 erstellt.

Ich kann die Abfrage momentan nicht testen, aber halten Sie mich über Ihre Ergebnisse auf dem Laufenden, damit ich von dort aus Anpassungen vornehmen kann.

BEARBEITEN

Wenn DBVersionKey kein eindeutiger Wert ist, würde ich versuchen:

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

Lassen Sie mich wissen, ob das besser funktioniert.

BEARBEITEN 2

Nochmal, ich kann es nicht testen. Hinzufügen zur ersten vorgeschlagenen Abfrage:

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