duplicates - sql-server - 重複した行を削除するにはどうすればいいですか?

sql-server / tsql

かなり大きなから重複行を削除するための最良の方法は何である SQL Serverテーブル(つまり、300,000行)は?

RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null

DineshDB



Answer #1

重複する行をフェッチするには:

SELECT
name, email, COUNT(*)
FROM 
users
GROUP BY
name, email
HAVING COUNT(*) > 1

重複する行を削除するには:

DELETE users 
WHERE rowid NOT IN 
(SELECT MIN(rowid)
FROM users
GROUP BY name, email);