1. ホーム
  2. sql

[解決済み] SQL Serverで重複したレコードを削除するには?

2022-12-03 04:34:14

質問

という名前のカラムを考えてみましょう。 EmployeeName テーブル Employee . 目標は、繰り返されたレコードを削除することです。 EmployeeName フィールドを削除することです。

EmployeeName
------------
Anand
Anand
Anil
Dipak
Anil
Dipak
Dipak
Anil

1つのクエリで、繰り返しのあるレコードを削除したい。

SQL Server の TSQL を使用して、どのようにこれを行うことができますか?

どのように解決するのですか?

ウィンドウ関数で行うことができます。これは、empIdで重複を並べ、最初のもの以外を削除します。

delete x from (
  select *, rn=row_number() over (partition by EmployeeName order by empId)
  from Employee 
) x
where rn > 1;

削除されるものを確認するためにselectで実行します。

select *
from (
  select *, rn=row_number() over (partition by EmployeeName order by empId)
  from Employee 
) x
where rn > 1;