ホームページ >データベース >mysql チュートリアル >SQL Server で 1 つの行を保持したまま重複する行を削除するにはどうすればよいですか?

SQL Server で 1 つの行を保持したまま重複する行を削除するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-15 16:11:45969ブラウズ

How Can I Delete Duplicate Rows in SQL Server While Keeping One Row?

単一行を保持しながら 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 データベースのデータのクリーンさと正確さを維持するための効率的で信頼性の高い方法を提供します。

以上がSQL Server で 1 つの行を保持したまま重複する行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。