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

Find dublerede værdier, der er tildelt mere end én unik værdi

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

Jeg foreslår at bruge almindelige tabeludtryk med rækkenummerpartitioner. Dette opretter en optælling (RN) af hver forekomst af Desc19.

Jeg kan ikke teste forespørgslen lige nu, men hold mig opdateret om dine resultater, og jeg kan justere derfra.

REDIGER

Hvis DBVersionKey ikke er en unik værdi, ville jeg prøve:

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

Lad mig vide, om det virker bedre.

REDIGERING 2

En igen, jeg kan ikke teste den. Tilføjelse til den første foreslåede forespørgsel:

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. Sådan ændres baggrundsfarven for en formular i Access 2016

  2. Strengsammenkædningsoperatør i Oracle, Postgres og SQL Server

  3. Find alle de kolonner, der kun har nulværdier, i en MySQL-tabel

  4. mysql2 gem undlader at kompilere med MySQL 5.6.12 på OS X med Homebrew