必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 応用情報技術者
  3. 平成23年度特別問題一覧
  4. 平成23年度特別問題30-解答・解説-分析

平成23年度特別問題

問題30

“社員"表と“人事異動"表から社員ごとの勤務成績の平均を求める適切なSQL文はどれか。ここで、求める項目は、社員コード、社員名、勤務成績(平均)の3項目とする。

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 社員.社員コード,社員.社員名

“社員"表と“人事異動"表から社員ごとの勤務成績の平均を求める適切なSQL文はどれか。ここで、求める項目は、社員コード、社員名、勤務成績(平均)の3項目とする。

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 句の誤りである。GROUP BY 句には社員コード,社員名が指定される。
正しい。
× 平均(AVG(勤務成績))を行数(COUNT(勤務成績))で割る必要はない。
× 最大値(MAX(勤務成績))を行数(COUNT(勤務成績))で割る必要はない。