从相当大的SQL Server
表中删除重复行的最佳方法是什么(即300,000多行)?
当然,由于RowID
身份字段的存在,行不会是完美的重复.
MyTable的
RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null
Run Code Online (Sandbox Code Playgroud) 我有一个表 Emp 其中有这样的记录
Id Name
1 A
2 B
3 C
1 A
1 A
2 B
3 C
Run Code Online (Sandbox Code Playgroud)
现在我想从表中删除重复行我正在使用此查询来选择或计算重复记录的数量
SELECT NameCol, COUNT(*) as TotalCount FROM TestTable
GROUP BY NameCol HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
Run Code Online (Sandbox Code Playgroud)
我应该编写什么查询来删除表中的重复行。
如果我编写此查询来删除重复记录,那么它会给出结果(0) row Affected
。
`DELETE FROM TestTable
WHERE ID NOT IN ( SELECT MAX(ID) FROM
TestTable
GROUP BY NameCol
)`
Run Code Online (Sandbox Code Playgroud)