平成23年度 春期
応用情報技術者試験問題と解答
問30
“社員”表と“人事異動”表から社員ごとの勤務成績の平均を
求める適切なSQL文はどれか。ここで、求める項目は、
社員コード、社員名、勤務成績 (平均) の3項目とする。

 社員
┌─────┬────┬──┬─────┬─────┐
│社員コード│ 社員名 │性別│ 生年月日 │入社年月日│
┝━━━━━┿━━━━┿━━┿━━━━━┿━━━━━┥
│O1553│太田由美│ 女 │1970-03-10│1990-04-01│
├─────┼────┼──┼─────┼─────┤
│S3781│佐藤義男│ 男 │1943-11-20│1975-06-01│
├─────┼────┼──┼─────┼─────┤
│O8665│太田由美│ 女 │1978-10-13│1999-04-01│
└─────┴────┴──┴─────┴─────┘

人事異動
┌─────┬────┬─────┬───────┬────┐
│社員コード│配属部門│配属年月日│ 担当勤務内容 │勤務成績│
┝━━━━━┿━━━━┿━━━━━┿━━━━━━━┿━━━━┥
│O1553│ 総務部 │1990-04-01│広報(社内報)│69.0│
├─────┼────┼─────┼───────┼────┤
│O1553│ 営業部 │1998-07-01│顧客管理   │72.0│
├─────┼────┼─────┼───────┼────┤
│S3781│ 資材部 │1975-06-11│仕入在庫管理 │70.0│
├─────┼────┼─────┼───────┼────┤
│S3781│ 経理部 │1984-07-01│資金計画   │81.0│
├─────┼────┼─────┼───────┼────┤
│S3781│ 企画部 │1993-07-01│会社組織、分掌│95.0│
├─────┼────┼─────┼───────┼────┤
│O8665│ 秘書室 │1999-04-01│受付     │70.0│
└─────┴────┴─────┴───────┴────┘
 ア SELECT 社員.社員コード, 社員名, AVG(勤務成績) 
                         AS "勤務成績(平均)"
   FROM 社員, 人事異動
   WHERE 社員.社員コード = 人事異動.社員コード
   GROUP BY 勤務成績
 イ SELECT 社員.社員コード, 社員名, AVG(勤務成績) 
                         AS "勤務成績(平均)"
   FROM 社員, 人事異動
   WHERE 社員.社員コード = 人事異動.社員コード
   GROUP BY 社員.社員コード, 社員.社員名
 ウ SELECT 社員.社員コード, 社員名,
     AVG(勤務成績)/COUNT(勤務成績) AS “勤務成績(平均)”
   FROM 社員, 人事異動
   WHERE 社員.社員コード = 人事異動.社員コード
   GROUP BY 社員.社員コード, 社員.社員名
 エ SELECT 社員.社員コード, 社員名, MAX(勤務成績)/COUNT(*)
                          AS “勤務成績(平均)”
   FROM 社員, 人事異動
   WHERE 社員.社員コード = 人事異動.社員コード
   GROUP BY 社員.社員コード, 社員.社員名



【正解】 イ

ア GROUP BY 句で使用した 勤務成績をAVG関数で使用しているため、
 構文エラーとなる。
イ 正しい。
 
SELECT 社員.社員コード, 社員名, AVG(勤務成績) 
                        
 AS "勤務成績(平均)"
   
FROM 社員, 人事異動
   
WHERE 社員.社員コード = 人事異動.社員コード
   
GROUP BY 社員.社員コード, 社員.社員名
 の意味は、以下のとおり。
 “社員表”と, “人事異動”表から、
 社員コードが一致するレコードを取り出し、
 社員コード、社員名単位でグループ化して
 “社員”表の社員コードと、社員名と、“勤務成績(平均)”というタイトルで
 勤務成績の平均を出力する。

ウ AVG(勤務成績)/COUNT(勤務成績) について、
 勤務成績の平均を求め、さらに、グループごとのデータ数で割っているため
 勤務成績 (平均) を正しく求められない。
エ MAX(勤務成績)/COUNT(*) について
 勤務成績の最高値を、全体の行数で割っているため、勤務成績 (平均) を
 正しく求められない。

EXCEL VBAのご相談なら ファーストマクロ 



問29 目次 問31
ファーストマクロ TOPページ