我需要根据一个表中的名称获取重复记录,并将它们存档在另一个表中。
INSERT INTO dbo.User_Archive (ID, Name, Update)
SELECT ID, Count(*), Update
FROM dbo.Properties
GROUP BY ID, Name, Update
HAVING Count(*) > 1
这不起作用。必须有一种简单的方法。
答案 0 :(得分:1)
试试这个答案,CTE
主要使用重复删除过程:
;WITH CTE(
SELECT ID, NAME, Update,ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY ID)RN
FROM dbo.Properties
GROUP BY ID, Name, Update
)
INSERT INTO dbo.User_Archive
(ID, Name, Update)
SELECT ID, Name, Update
FROM CTE WHERE RN>1
答案 1 :(得分:0)
您正在按错误的列进行分组。
INSERT INTO dbo.User_Archive (Name)
SELECT Name
FROM dbo.Properties
GROUP BY Name
HAVING Count(*) > 1