Skip to the content.

最終更新日:2026年6月22日

DS検定トップ > DISTINCTとは?重複データを除去する基本操作【DS検定】

まず結論

DISTINCTは、SQLで重複している値または値の組み合わせを1つにまとめるためのキーワードです。

DS検定では、単に「重複を消す」と覚えるだけでなく、どの列の組み合わせで重複を判定しているか件数を数える処理とどう違うかを判断できることが重要です。

直感的な説明

売上テーブルに、同じ商品が何度も登場しているとします。

商品名 売上日
りんご 2026-06-01
りんご 2026-06-02
みかん 2026-06-02
りんご 2026-06-03

「売れた回数」を知りたいなら、重複を残して数える必要があります。 一方で「売れた商品の種類だけ」を知りたいなら、同じ商品名を何度も表示する必要はありません。

このように、一覧として種類を確認したいときに重複をまとめるのがDISTINCTです。

定義・仕組み

DISTINCTは、SELECT句で指定した列について、同じ値の行を1つにまとめます。

SELECT DISTINCT 商品名
FROM 売上テーブル;

この例では、商品名の種類だけを取得できます。

複数列を指定した場合は、1列ずつではなく列の組み合わせで重複を判定します。

SELECT DISTINCT 顧客ID, 商品名
FROM 売上テーブル;

この場合は「顧客IDと商品名のペア」が同じ行だけが重複としてまとめられます。商品名が同じでも、顧客IDが違えば別の組み合わせとして残ります。

どんな場面で使う?

DISTINCTは、次のような確認で使います。

  • 顧客の居住地域の種類を確認する
  • 商品カテゴリの一覧を作る
  • データ入力値に想定外の表記ゆれがないかを見る
  • 集計前に、どの値が存在するかをざっと確認する

ただし、売上回数や注文件数を知りたい場面でDISTINCTを使うと、必要な重複まで消してしまいます。

DS検定では、「種類の一覧」ならDISTINCT、件数や合計を求めるならCOUNTやSUMとの組み合わせと切り分けると選択肢を判断しやすくなります。

よくある誤解・混同

① DISTINCTとGROUP BYを同じものだと思う

DISTINCTは重複を取り除いて一覧を作るための機能です。 GROUP BYは、同じ値を持つ行をグループにまとめ、COUNTやSUMなどの集計関数で集計するための機能です。

構文 主な目的
DISTINCT 重複のない一覧を作る
GROUP BY グループごとに集計する

「集計関数とセットで合計や件数を出す」と書かれていれば、DISTINCTだけではなくGROUP BYを疑います。

② DISTINCTを使っても行数は変わらないと思う

重複があれば、取得される行数は減ります。

選択肢で「DISTINCTは表示順を変えるだけ」「レコード数には影響しない」と書かれていたら誤りです。

③ 複数列でも1列だけで重複判定すると考える

SELECT DISTINCT A, B は、A列だけでもB列だけでもなく、AとBの組み合わせで判定します。

この点は実務でも重要です。顧客IDを含めず商品名だけでDISTINCTすると、顧客ごとの購入実態を消してしまうことがあります。

まとめ(試験直前用)

  • DISTINCTは重複を1つにまとめるSQLのキーワード
  • 複数列では「列の組み合わせ」で重複を判定する
  • GROUP BYは集計、DISTINCTは重複のない一覧作成が中心
  • 件数や売上回数を知りたいときに使うと、必要な重複を消すことがある
  • DS検定では「種類を知りたいのか、件数を知りたいのか」を読む

対応スキル項目(データエンジニアリング力シート)

  • データ基盤
  • データ操作
  • ★ SQLを用いた基本的なデータ操作(検索・集計・結合等)ができる

🔗 関連記事



© 2024-2026 stemtazoo. All rights reserved.