平成25年 春期 データベーススペシャリスト 午前II 問5

“社員”表から、役割名がプログラムである社員が3人以上所属している部門の部門名を取得するSQL文はどれか。
ここで、実践の下線は主キーを表す。

社員(社員番号, 部門名, 社員名, 役割名)

 ア  SELECT 部門名 FROM 社員
   GROUP BY 部門名
   HAVING COUNT(*) >= 3
   WHERE 役割名 = ‘プログラマ’
 イ  SELECT 部門名 FROM 社員
   WHERE COUNT(*) >= 3 AND 役割名 = ‘プログラマ’
   GROUP BY 部門名
 ウ  SELECT 部門名 FROM 社員
   WHERE COUNT(*) >= 3
   GROUP BY 部門名
   HAVING 役割名 = ‘プログラマ’
 エ  SELECT 部門名 FROM 社員
   WHERE 役割名 = ‘プログラマ’
   GROUP BY 部門名
   HAVING COUNT(*) >= 3


答え エ


解説
処理としては社員から役割名が‘プログラマ’を選び、‘プログラマ’の社員を部門名ごとにまとめ、部門名ごとに件数(人数)を求めそれが3人以上の部門を表示するので
 SELECT 部門名 FROM 社員
   WHERE 役割名 = ‘プログラマ’
   GROUP BY 部門名
   HAVING COUNT(*) >= 3
(エ)になります。


キーワード
・GROUP BY
・COUNT

キーワードの解説
  • GROUP BY
    指定された属性の値が一致するレコードをまとめるSQL文です。
  • COUNT
    データの件数を数えるSQL文です。

もっと、「SQL」について調べてみよう。

戻る 一覧へ 次へ