“社員”表から、役割名がプログラムである社員が3人以上所属している部門の部門名を取得するSQL文はどれか。
ここで、実践の下線は主キーを表す。
社員(社員番号, 部門名, 社員名, 役割名)
ア | SELECT 部門名 FROM 社員 GROUP BY 部門名 HAVING COUNT(*) >= 3 WHERE 役割名 = ‘プログラマ’ |
イ | SELECT 部門名 FROM 社員 WHERE COUNT(*) >= 3 GROUP BY 部門名 HAVING 役割名 = ‘プログラマ’ |
ウ | SELECT 部門名 FROM 社員 WHERE COUNT(*) >= 3 AND 役割名 = ‘プログラマ’ GROUP BY 部門名 |
エ | SELECT 部門名 FROM 社員 WHERE 役割名 = ‘プログラマ’ GROUP BY 部門名 HAVING COUNT(*) >= 3 |
答え エ
【解説】
処理としては社員から役割名が‘プログラマ’を選び、‘プログラマ’の社員を部門名ごとにまとめ、部門名ごとに件数(人数)を求めそれが3人以上の部門を表示するので
SELECT 部門名 FROM 社員
WHERE 役割名 = ‘プログラマ’
GROUP BY 部門名
HAVING COUNT(*) >= 3
(エ)になります。
【キーワード】
・GROUP BY
・COUNT