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

“社員”表から、部署コードごとの主任の人数と一般社員の人数を求めるSQL文とするために、aに入る字句はどれか。
ここで、実線の下線は主キーを表す。

社員(社員コード, 部署コード, 社員名, 役職)

[SQL文]
 SELECT 部署コード,
   COUNT(CASE WHEN 役職 = ‘主任’   a   END) AS 主任の人数
   COUNT(CASE WHEN 役職 = ‘一般社員’   a   END) AS 一般社員の人数
 FROM 社員 GROUP BY 部署コード

 ア  THEN 1 ELSE -1
 イ  THEN 1 ELSE 0
 ウ  THEN 1 ELSE NULL
 エ  THEN NULL ELSE 1


答え ウ


解説
SQL文のCOUNTはNULLでない行を集計するので、人数を数えるこのSQL文では条件に合致したときはNULL以外、合致しなかった時にはNULLを返すようなSQL文がaに入るので
  SELECT 部署コード,
    COUNT(CASE WHEN 役職 = ‘主任’ THEN 1 ELSE NULL END) AS 主任の人数
    COUNT(CASE WHEN 役職 = ‘一般社員’ THEN 1 ELSE NULL END) AS 一般社員の人数
  FROM 社員 GROUP BY 部署コード
(ウ)になる。


キーワード
・GROUP BY
・COUNT

キーワードの解説

戻る 一覧へ 次へ