using CTE + ROW_NUMBER()
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY Name, DeptId ORDER BY EmpId) AS rn
FROM Employees
)
DELETE FROM CTE
WHERE rn > 1;
This will number the records according to name and deptId , starts with 1 contiues until next record with different name and deptid is found this way it will delete all the duplicate records keeping one copy
Top comments (0)