ホームページ > データベース > mysql チュートリアル > 一意の識別子を持たずに SQL で重複する行を削除するにはどうすればよいですか?

一意の識別子を持たずに SQL で重複する行を削除するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-23 01:37:08
オリジナル
928 人が閲覧しました

How to Delete Duplicate Rows in SQL Without a Unique Identifier?

一意の識別子のない重複行を削除します

一意の識別子列を持たないテーブルから重複行を削除するには、CTE (共通テーブル式) を ROW_NUMBER() と組み合わせて使用​​できます。

解決策:

次の問い合わせを検討してください:

<code class="language-sql">WITH CTE AS (
   SELECT [col1], [col2], [col3], [col4], [col5], [col6], [col7],
       RN = ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col1)
   FROM dbo.Table1
)
DELETE FROM CTE WHERE RN > 1;</code>
ログイン後にコピー

このクエリは次のことを行います:

  1. CTE の作成: 「CTE」という名前の CTE を作成し、各行に一意の値パーティションの「col1」列の 1 から数えて一意の ROW_NUMBER() を割り当てます。
  2. 重複の識別: クエリは、ROW_NUMBER() が 1 より大きいかどうかをチェックして重複行を識別します。
  3. 重複の削除: 次に、重複する ROW_NUMBER() 値を持つ CTE 内のすべての行を削除します。

結果:

クエリの結果は、重複行が削除されたテーブルであり、最初に出現した一意の行のみが保持されます。これは、元のテーブルに一意の識別子列を必要とせずに実現されます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート