从一个表中获取重复记录并放入另一个表中

时间:2017-11-09 02:15:20

标签: sql sql-server

我需要根据一个表中的名称获取重复记录,并将它们存档在另一个表中。

INSERT INTO dbo.User_Archive (ID, Name, Update)
    SELECT ID, Count(*), Update
    FROM dbo.Properties
    GROUP BY ID, Name, Update
    HAVING Count(*) > 1

这不起作用。必须有一种简单的方法。

2 个答案:

答案 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