SQLで重複データを削除する方法

SQL の重複データ削除の方法は次のとおりです。

  1. SELECT DISTINCT句を使用すると、重複する行を取り除いてデータを検索できます。

SELECT DISTINCT column1, column2 FROM table_name;

  1. GROUP BY、HAVING句を用いる: 特定の列をグループ化し、HAVING句を用いて重複しないデータを抽出する。

SELECT column1, column2 FROM table_name GROUP BY column1, column2 HAVING COUNT(*) = 1;

  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;

  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データの重複削除によく使用される手法です。状況に合わせて適切な手法を選択して、重複データを削除してください。

bannerAds