DISTINCT の使い方

重複した行を 1 つにする

書き方

SELECT DISTINCT 列 FROM 表;

選んだ列の組み合わせが同じ行を 1 行にまとめます。

よく使うオプション

オプション意味
DISTINCT 列その列の値が同じ行を 1 行にまとめる
DISTINCT 列, 列書いた列の組み合わせが同じ行を 1 行にまとめる
COUNT(DISTINCT 列)重ならない値がいくつあるか数える

例

SELECT DISTINCT city FROM customers; city
------
 大阪
 東京
 福岡
(3 rows)

客の住む町を、重なりなしで出します。同じ町の客が何人いても 1 行です。

SELECT DISTINCT dept_id, manager_id FROM employees;

部署と上司の組み合わせを、重なりなしで出します。どちらか一方でも違えば別の行になります。

SELECT COUNT(DISTINCT customer_id) FROM orders; count
-------
    42
(1 row)

一度でも注文した客が何人いるかを数えます。同じ客の注文が何件あっても 1 人です。

よくある間違い・注意

  • DISTINCT は SELECT のすぐ後に 1 回だけ書き、選んだすべての列に効きます。1 つの列だけに効くわけではありません。
  • NULL どうしは同じものとしてまとめられ、1 行になります。

実際に打って練習する

SQL コースの Lv6「重複をなくす DISTINCT」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

SQL 構文一覧(使い方と例)へ戻る