“社員”表から、部署コードごとの主任の人数と一般社員の人数を求める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