Удалить повторяющиеся строки больше 1 - PullRequest
1 голос
/ 19 сентября 2019

У меня есть скрипт, который ищет дубликаты.Я хочу знать, как теперь удалить эти дубликаты.

Select LastName, FirstName, DateOfBirth, Count (*) As Duplicates
From PatientDemographics2
Group by FirstName, LastName, DateOfBirth
Having count (*) >1
Order by LastName, FirstName Asc

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

Вы можете ROW_NUMBER() обнаружить дубликат

WITH cte AS (
    SELECT LastName, FirstName, DateOfBirth
        , ROW_NUMBER() OVER(PARTITION BY LastName, FirstName, DateOfBirth ORDER BY LastName) AS rn
    FROM PatientDemographic2
)
DELETE FROM cte 
WHERE rn > 1
0 голосов
/ 19 сентября 2019

Или просто:

DELETE FROM PatientDemographics2 WHERE id NOT IN (
 SELECT MIN(id) i1 FROM PatientDemographics2
 GROUP BY FirstName, LastName, DateOfBirth
)

демо: https://rextester.com/KOZI16883

...