ホームページ >データベース >mysql チュートリアル >SQL Server で 1 つの行を保持したまま重複する行を削除するにはどうすればよいですか?
単一行を保持しながら SQL Server で重複行を効率的に削除する
データベース管理ではデータの整合性が非常に重要です。 この記事では、一意のデータ セットごとに少なくとも 1 つのインスタンスを残しながら、SQL Server テーブルから重複行を削除するという一般的な問題について説明します。 T-SQL は、共通テーブル式 (CTE) を使用した簡単なソリューションを提供します。
CTE 内の OVER
句は、このプロセスの鍵となります。 わかりやすい例を次に示します:
<code class="language-sql">WITH cte AS ( SELECT [foo], [bar], ROW_NUMBER() OVER (PARTITION BY [foo], [bar] ORDER BY [baz]) AS rn FROM [TABLE] ) DELETE FROM cte WHERE rn > 1;</code>
このクエリは、CTE を使用して、列 rn
と [foo]
で定義されたグループ内の各行に一意の行番号 ([bar]
) を割り当てます。 ORDER BY [baz]
句は、各グループ内のどの行を保持するかを決定します。 特定のニーズに基づいてこれを調整する必要があります。 DELETE
ステートメントは、rn
が 1 より大きいすべての行を削除し、[foo]
と [bar]
の一意の組み合わせごとに代表的な行を 1 つだけ残します。
以上がSQL Server で 1 つの行を保持したまま重複する行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。