DEV Community 日本語
フォロー
SQLで重複行を見つける方法(そして1つと見なされるものを決定する方法)
この記事では、SQLクエリと明確な3段階のプロセスを使用して、データベーステーブル内の重複行を特定し、処理する方法を説明します。クエリを実行する前に、特定のテーブルで重複を構成するものを定義することが重要です。最初のステップは簡単なテストです。重複が存在するかどうかを判断するために、総行数と一意のキー値の数を比較します。重複が存在する場合、次の段階は定義された重複基準で行をグループ化し、HAVING句を使用して1行以上のグループを特定することです。実際のすべての重複行を表示するには、IN演算子を使用したサブクエリで、特定された重複キーに一致するすべての行を取得できます。次に、ROW_NUMBERウィンドウ関数を紹介し、パーティション内の各行に一意の番号を割り当て、保持する行と追加の行を指定できるようにします。データとレビューを可能にするために、即時削除ではなく、後で削除される可能性のある重複をマークすることを強調しています。最後に、正確な重複行を削除する必要がある場合のDELETEクエリパターンを提供し、削除される行をプレビューするために最初にSELECTステートメントを実行することの重要性を強調しています。中心的な考え方は、特定の列でグループ化することにより、重複が何を意味するかが定義され、それらが可視化され、管理可能になるということです。