Подтвердить что ты не робот

Удаление повторяющейся записи в SQL Server

Я написал запрос для удаления дубликатов записей из таблицы

WITH a as
(
SELECT Firstname,ROW_NUMBER() OVER(PARTITION by Firstname, empID ORDER BY Firstname) 
AS duplicateRecCount
FROM dbo.tblEmployee
)
--Now Delete Duplicate Records
DELETE FROM tblEmployee
WHERE duplicateRecCount > 1 

Но я не знаю, где я ошибся, он говорит

Недопустимое имя столбца duplicateRecCount

Может кто-нибудь мне помочь?

4b9b3361

Ответ 1

Вам нужно ссылаться на CTE в инструкции удаления...

WITH a as
(
SELECT Firstname,ROW_NUMBER() OVER(PARTITION by Firstname, empID ORDER BY Firstname) 
AS duplicateRecCount
FROM dbo.tblEmployee
)
--Now Delete Duplicate Records
DELETE FROM a
WHERE duplicateRecCount > 1

Ответ 2

 DELETE duplicates FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY firstname, lastname, EMPNO, salary,dept  ORDER BY empno) cnt
 FROM tblEmp)  duplicates
WHERE duplicates.Cnt > 1