Id Name 1 A 1 A 2 B 3 C 3 C 4 D
WITH CTE AS( SELECT *, RN = ROW_NUMBER()OVER(PARTITION BY [Id] ORDER BY [Id]) FROM dbo.Table1 ) DELETE FROM CTE WHERE RN > 1