SQL Serverのテーブルから重複行を削除
概要:このチュートリアルでは、SQL Serverのテーブルから重複行を削除する方法を学び
SQL Serverのテーブルから重複行を削除するには、次の手順に従います。
GROUP BY
句またはROW_NUMBER()
関数を使用して重複行を検索します。- 重複する行を削除するには、
DELETE
ステートメントを使用します。
デモンストレーション用のサンプルテーブルをセットアップしましょう。,
サンプルテーブルのセットアップ
まず、sales.contacts
という名前の新しいテーブルを作成します。
次に、sales.contacts
テーブルにいくつかの行を挿入します。
第三に、sales.contacts
テーブルからデータをクエリします。
Code language: SQL (Structured Query Language) (sql)
次の図は、クエリの出力を示しています。
同じ名、姓、電子メールを持つ連絡先には、多くの重複行(3,4,5)、(6,7)、および(8,9)があります。,
テーブルから重複行を削除する例
次のステートメントでは、共通テーブル式(CTE)を使用して重複行を削除します。
このステートメントでは、
- まず、CTEは
ROW_NUMBER()
関数を使用して、first_name
、、およびemail
列。 - 次に、
DELETE
ステートメントは、すべての重複行を削除しますが、各重複グループの出現を一つだけ保持します。,
SQL Serverは、重複した行が削除されたことを示す次のメッセージを発行しました。
sales.contacts
テーブルからデータを再度問い合わせると、重複する行がすべて削除されることがわかります。
このチュートリアルでは、SQL Serverのテーブルから重複行を削除する方法を学習しました。