重複しているデータを省いた状態でデータを取得する場合、DISTINCT
や GROUP BY
を使用する方法が有効です。以下に、複数カラムを基準に重複を排除する具体的な方法を紹介します。
方法1: DISTINCT を使用
複数のカラムを基準に重複を排除するためには、DISTINCT
を使用してクエリを実行します。
SELECT DISTINCT column1, column2, column3
FROM your_table;
column1
,column2
,column3
は重複の基準にする列です。
方法2: GROUP BY を使用
GROUP BY
を使って、複数のカラムを基準に重複を省いてデータを取得します。
SELECT column1, column2, column3, COUNT(*)
FROM your_table
GROUP BY column1, column2, column3;
column1
,column2
,column3
によってグループ化され、各グループの重複が省かれた状態になります。
方法3: ROW_NUMBER() を使用 (MySQL 8.0以降)
ROW_NUMBER()
を使用して、複数カラムを基準に最初の重複を除いた行のみを取得します。
WITH UniqueData AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY column1, column2, column3 ORDER BY id) AS RowNum
FROM your_table
)
SELECT *
FROM UniqueData
WHERE RowNum = 1;
column1
,column2
,column3
は重複をチェックする列で、id
は並び順を決定する列です。
実行結果
DISTINCT
を使うと、重複する組み合わせが省かれた結果がそのまま取得されます。GROUP BY
は、重複を省いた上でグループ化された結果を出力します。ROW_NUMBER()
は、複数カラムを基準に重複のない行を保持し、重複行は排除されます。
用途や目的に応じて、最適な方法を選んで使用してください。