部署名を重複なしで一覧したい。DISTINCT の位置が正しいのは?
SELECT dept FROM emp ORDER BY dept;正答
- SELECT dept FROM emp DISTINCT ORDER BY dept;
- SELECT dept FROM emp ORDER BY DISTINCT dept;
- DISTINCT SELECT dept FROM emp ORDER BY dept;
- SELECT DISTINCT dept FROM emp ORDER BY dept;
解説
DISTINCT は SELECT の直後、列リストの前に書き、結果の行から重複を取り除く。特定の列に付ける関数ではなく、SELECT した行全体が同じものを 1 行にまとめる指定である。FROM の後ろや ORDER BY の中に書くと構文エラーになる。SELECT より前に置く形も文法上の位置がない。修正前の文は DISTINCT がないため、dev と ops が 2 回ずつ出て 5 行が返る。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ