SQL4 択難易度 基礎

部署名を重複なしで一覧したい。DISTINCT の位置が正しいのは?

SELECT dept FROM emp ORDER BY dept;

正答

  1. SELECT dept FROM emp DISTINCT ORDER BY dept;
  2. SELECT dept FROM emp ORDER BY DISTINCT dept;
  3. DISTINCT SELECT dept FROM emp ORDER BY dept;
  4. SELECT DISTINCT dept FROM emp ORDER BY dept;

解説

DISTINCT は SELECT の直後、列リストの前に書き、結果の行から重複を取り除く。特定の列に付ける関数ではなく、SELECT した行全体が同じものを 1 行にまとめる指定である。FROM の後ろや ORDER BY の中に書くと構文エラーになる。SELECT より前に置く形も文法上の位置がない。修正前の文は DISTINCT がないため、dev と ops が 2 回ずつ出て 5 行が返る。

参考: www.sqlite.org

distinctclause-order

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ