Oracle テーブルの重複行の削除: 実用的なアプローチ
Oracle テーブルの作成中に、意図せずに重複行が発生し、主キーの作成が妨げられることがあります。 この記事では、単一の一意の行を保持しながら、これらの重複を効率的に削除する方法について詳しく説明します。
解決策: rowid
疑似列
Oracle の rowid
疑似列は、各行に一意の識別子を提供します。これを利用して、冗長なエントリを特定し、削除します。
次の SQL ステートメントは、rowid
を使用してこれを実現します。
<code class="language-sql">DELETE FROM your_table WHERE rowid NOT IN (SELECT MIN(rowid) FROM your_table GROUP BY column1, column2, column3);</code>
このクエリは、rowid
が重複の各グループ内の最小の rowid
に対応しない行を削除します。 GROUP BY
句は、指定された列 (column1、column2、column3) に基づいてグループ化を定義します。 これらの列値の一意の組み合わせごとに 1 行だけが残ります。
重複を正確に削除するには、すべての列を GROUP BY
句に含めることを検討してください。 特定のテーブル構造に合わせて列名を調整します。
このアプローチにより、一意のレコードのみが確実に保持され、主キーの作成やその他のデータベース操作への道が開かれます。
以上が一意の行を 1 つ保持したまま、Oracle テーブルから重複行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。