問題
勤務実態を把握するため、部署ごとに4月の平均残業時間を調査することになった。そこで、以下のような SQL 文でデータベースに問い合わせをすることにした。データテーブルは、以下の2つである。 テーブル名:4月の残業時間 従業員 ID 氏名 所属 ID 残業時間 A01002 鈴木英子 101 4 A01079 佐藤浩司 102 10 A02014 高木有一 101 4 A02043 田中真一 103 3 A04081 赤城和郎 102 11 A05047 本田まり 103 2 A05051 藤田二郎 102 12 テーブル名:部署 部署 ID 部署名 101 個人営業部 102 法人営業部 103 経理部 SQL 文 SELECT ① , ② ,AVG(残業時間)FROM ③ , ④ WHERE ③ .所属 ID = ④ .部署 ID GROUP BY ⑤ , ⑥ (設問2) SQL 文の空欄⑤、⑥に入る最も適切なものの組み合わせはどれか。
選択肢
- 1⑤:4月の残業時間 ⑥:残業時間
- 2⑤:従業員 ID ⑥:4月の残業時間
- 3⑤:所属 ID ⑥:部署 ID
- 4⑤:部署 ID ⑥:部署名
正解
4. ⑤:部署 ID ⑥:部署名
詳しい解説を見る解説を閉じる
解説
GROUP BY には、集計関数(AVG)以外で SELECT 句に並べた列をすべて指定する必要がある。設問1より SELECT 句は①=部署 ID、②=部署名 であるから、GROUP BY ⑤,⑥ には ⑤=部署 ID、⑥=部署名 が入る。これにより部署単位で残業時間の平均が求められる。よってエが正しい。 ア・イのようにテーブル名や残業時間(集計対象の列)を GROUP BY に置くのは誤り。ウのように所属 ID と部署 ID を並べても SELECT 句の列と一致せず、集計のキーとして適切でないため誤り。(出典: 一般社団法人 中小企業診断協会 平成20年度 中小企業診断士1次試験 経営情報システム 第10問 設問2)
中小企業診断士トップ
一問一答・予想問題・まとめノート