sql >> Databasteknik >  >> RDS >> Mysql

Hitta dubbletter av värden som tilldelats mer än ett unikt värde

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

Jag föreslår att du använder vanliga tabelluttryck med radnummerpartitioner. Detta skapar ett antal (RN) för varje instans av Desc19.

Jag kan inte testa frågan just nu, men håll mig uppdaterad om dina resultat så kan jag justera därifrån.

REDIGERA

Om DBVersionKey inte är ett unikt värde skulle jag försöka:

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

Låt mig veta om det fungerar bättre.

REDIGERA 2

En igen, jag kan inte testa den. Lägger till i den första föreslagna frågan:

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. Ebean letar efter fel sekvensnamn i Play Framework 2

  2. Konvertera UPDATE med INNER JOIN från SQL för användning i MySQL

  3. Random() i MySql?

  4. GROUP BY utan aggregatfunktion