如何从sql表中删除除重复记录之外的重复记录?
问题描述:
可能重复:
How to remove duplicate records in a table?如何从sql表中删除除重复记录之外的重复记录?
我在其中包含与专案编号具有复制表中的记录列的一个一个表。和有主键列的表。我想保留一条记录&删除其余重复。 以下查询是查找具有no的重复记录总数。的出现 -
SELECT ProjectID,
COUNT(ProjectID) AS NumOccurrences
FROM MyTable
GROUP BY ProjectID
HAVING (COUNT(ProjectID) > 1)
如何做到这一点?
谢谢。
答
;with cte as
(
select row_number() over(partition by ProjectID order by ProjectID) as rn
from MyTable
)
delete cte
where rn > 1
我想你的查询,它工作得很好,因为我想要什么,但它提供了解析查询时,下面的错误 - '在解析SQL窗格中的内容时遇到下列错误: 过SQL构造或语句不支持' – Priyanka
@Priyanka - 我不明白。它运行良好,但解析时出现错误?你如何解析?什么? –
@Priyanka - 现在我明白了。这是“SQL窗格”。我不认为Microsoft Management Studio中的可视化设计师可以处理row_number,或者甚至不能处理Common Table Expression。 –