SQL でデータ重複を削除する方法を教えてください。
SQLでは、次のようにしてデータを重複除去できます。
- 「重複しない」値だけを抽出し、重複を排除:SELECT DISTINCT column_name FROM table_name;
この方法では指定された列から重複を除いた一意の値が返されます。
- GROUP BY句を使用したSQL: SELECT column_name FROM table_name GROUP BY column_name;
指定された列の値ごとにグループ化し、重複値を除去したグループ内の1つの値を返します。
- HAVING 句を使用したクエリ:SELECT カラム名 FROM テーブル名 GROUP BY カラム名 HAVING COUNT(*) > 1;
指定の列の値でグループ化し、グループ内に複数重複するデータのみを返します。
- ROW_NUMBER()関数の使用:WITH CTE AS (SELECT column_name,ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY column_name) AS rn FROM table_name) SELECT * FROM CTE WHERE rn = 1;
ROW_NUMBER()関数を指定した列の値に番号を付け、番号が1であるデータだけを返し、重複するデータを削除します。
- UNIONキーワードを使用する:table_name1からcolumn_nameを選択UNION table_name2からcolumn_nameを選択
重複データを除外して、2 つ以上の SELECT 文のクエリ結果を結合します。
一般的に使用されているデータ重複削除方法は以上です。実際のニーズとシナリオに応じて適切な方法を選択してください。