相关疑难解决方法(0)

如何删除重复的行?

从相当大的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)

t-sql sql-server duplicates

1254
推荐指数
31
解决办法
118万
查看次数

从表中删除具有相同 ID 的重复行

我有一个表 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)

sql sql-server sql-server-2008

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql-server ×2

duplicates ×1

sql ×1

sql-server-2008 ×1

t-sql ×1