SQLで重複データを削除する方法と実践テクニック
重複データを削除するには、SQLのDELETEとCTE(Common Table Expressions)を使用することができます。以下は例です:
最初に、CTEを使用して重複したデータ行をマークし、その中の1つを保持します。
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY (SELECT NULL)) AS rn
FROM your_table
)
DELETE FROM CTE
WHERE rn > 1;
この例では、your_tableが重複データを含むテーブルであると仮定し、column1とcolumn2がデータの重複を判断する列であるとします。ROW_NUMBER()関数は、各グループ内のデータ行に行番号を割り当て、その行番号が1よりも大きい場合は、そのデータ行が重複していることを示します。最後に、DELETE文を使用して重複するデータ行を削除します。
データを消去する前に、必ずデータをバックアップしてください。重要なデータを誤って削除することを防ぐためです。