Oracleで重複する値を削除して1つだけを残す方法は?
Oracleデータベース表の重複値を削除し、重複値を1つだけ残すには、以下の方法を使用できます:
手段1:ROWIDを使用します。
DELETE FROM your_table
WHERE ROWID NOT IN (
SELECT MAX(ROWID)
FROM your_table
GROUP BY column1, column2, ...
);
「your_table」をあなたのテーブル名に、そして「column1、column2、…」を重複を基準にする列名に置き換えてください。
方法2:ROW_NUMBER()を使用する。
DELETE FROM your_table
WHERE ROWID NOT IN (
SELECT ROWID
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY column1) AS rn
FROM your_table
)
WHERE rn > 1
);
「your_table」をあなたのテーブル名に、「column1、column2、…」を重複排除したい列の名前に置き換える必要があります。