1. ホーム
  2. sql

[解決済み] Oracleでテーブルから重複した行を削除する

2022-03-05 12:19:41

質問

Oracleで何かのテストをしていて、サンプルデータをテーブルに入力したのですが、その過程で誤って重複したレコードを読み込んでしまい、現在いくつかのカラムを使って主キーを作成することができません。

重複する行をすべて削除し、1つだけ残すにはどうしたらよいですか?

どのように解決するのですか?

を使用します。 rowid 疑似カラム

DELETE FROM your_table
WHERE rowid not in
(SELECT MIN(rowid)
FROM your_table
GROUP BY column1, column2, column3);

ここで column1 , column2 および column3 は、各レコードの識別キーを構成する。すべてのカラムをリストアップすることもできます。