SQLで重複データを削除する方法
SQL の重複データ削除の方法は次のとおりです。
- SELECT DISTINCT句を使用すると、重複する行を取り除いてデータを検索できます。
SELECT DISTINCT column1, column2 FROM table_name;
- GROUP BY、HAVING句を用いる: 特定の列をグループ化し、HAVING句を用いて重複しないデータを抽出する。
SELECT column1, column2 FROM table_name GROUP BY column1, column2 HAVING COUNT(*) = 1;
- ROW_NUMBER() とCTE(共通表式)を使う:ROW_NUMBER() 関数を使用して各行データにユニークな行番号を割り当て、その後CTEにより行番号が1の行をフィルタリングする。
たとえば:
CTE とします
column1、column2列を選択し、column1、column2列で分割してcolumn1、column2列の順序で並べ替えた後に ROW_NUMBER() OVER(PARTITION BY column1, column2 ORDER BY column1, column2) AS rn とします
テーブル名から
私は友達を傷つけるようなことは決して言えない。
column1、column2 を選択
CTE から
WHERE rn = 1;
- 子クエリを使用してEXISTS:EXISTS サブクエリを使用して、重複データの有無を判断し、フィルタリングを行います。
たとえば、
column1, column2 を選択
表名 t1 から
WHERE NOT EXISTS (
1 を選択
テーブル名t2から
t1.column1 = t2.column1
AND t1.column2 = t2.column2
かつ t1.id != t2.id
ネイティブの日本語で言い換えてください。1つだけでいいですよ。
SQLデータの重複削除によく使用される手法です。状況に合わせて適切な手法を選択して、重複データを削除してください。