Mysql
 sql >> база данни >  >> RDS >> Mysql

Намерете дублирани стойности, присвоени на повече от една уникална стойност

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

Предлагам да използвате общи таблични изрази с дялове с номера на редове. Това създава брой (RN) на всеки екземпляр на Desc19.

Не мога да тествам заявката в момента, но ме информирайте за вашите резултати и мога да коригирам от там.

РЕДАКТИРАНЕ

Ако DBVersionKey не е уникална стойност, бих опитал:

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

Кажете ми дали това работи по-добре.

РЕДАКТИРАНЕ 2

Пак едно, не мога да го тествам. Добавяне към първата предложена заявка:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL код за грешка 1235

  2. извличане на идентификаторите, присвоени на списък с потребителски идентификатори

  3. Дублиране на цяла база данни на MySQL

  4. Как да обвържем потребителите с различни организации, университети, компании с различни роли?

  5. извадете 2 datetime в mysql (един във формат за 24 часа и един във формат am/pm)