如何删除sql表中的重复记录,但重复记录除外?

时间:2011-07-12 05:24:30

标签: sql-server-2008

  

可能重复:
  How to remove duplicate records in a table?

我有一个表,其中包含ProjectID列中的一个,该列在表中有重复记录。并且表具有主键列。我想保留一个记录和删除其余的重复。 以下查询是查找带有no的重复记录总数。事件 -

SELECT ProjectID, 
COUNT(ProjectID) AS NumOccurrences
FROM MyTable
GROUP BY ProjectID
HAVING ( COUNT(ProjectID) > 1 )

怎么做?

感谢。

1 个答案:

答案 0 :(得分:2)

;with cte as
(
  select row_number() over(partition by ProjectID order by ProjectID) as rn
  from MyTable
)
delete cte
where rn > 1