データベースの基礎
社員表の部署の列に、上の行から順に 営業、開発、営業、総務、開発、営業 の値が入っている(全6行)。SELECT DISTINCT 部署 FROM 社員 の結果は何行になるか。
- A2行
- B3行
- C6行
答えと解説を見る
正解:B. 3行
DISTINCTは、結果から重複した行を取り除き、同じ値を1行にまとめます。部署の値の種類は営業、開発、総務の3つなので、結果は3行です。DISTINCTを付けずに SELECT 部署 FROM 社員 とすると、重複を含めて6行がそのまま返ります。2行は、2回以上現れる部署(営業と開発)だけを数えた場合の数で、これは SELECT 部署 FROM 社員 GROUP BY 部署 HAVING COUNT(*) >= 2 のような問い合わせの結果に当たります。
- A. 2回以上現れる営業と開発だけを数えた数です。1回だけの総務も1行として残ります。
- B. 正しい。重複を取り除くと、営業、開発、総務の3行になります。
- C. DISTINCTを付けないときの行数です。