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

一意の行を 1 つ保持したまま、Oracle テーブルから重複行を削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-19 21:56:13
オリジナル
319 人が閲覧しました

How Can I Remove Duplicate Rows from an Oracle Table While Keeping One Unique Row?

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 サイトの他の関連記事を参照してください。

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