トップ過去問一覧応用情報技術者 平成23年・春 > 問30
問30

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

 

社員
社員コード 社員名 性別 生年月日 入社年月日
O1553 太田 由美 1970-03-10 1990-04-01
S3781 佐藤 義男 1943-11-20 1975-06-11
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 社員.社員コード,社員.社員名

解説
  1. 社員、人事異動の二つの表から
  2. 二つの表の社員コードが同値であることを条件とし
  3. 社員コードでグループ化した上で
  4. 社員コード、社員名、勤務成績の平均(勤務成績(平均)の名前で)、の3つの列を表示

になっているSQL文が正解です。また3.について、GROUP BY句にはSELECT句で指定する列の名前を、集約関数(ここではAVG)以外すべて書き出す必要があります。

無料学習システムはこちら
→間違えた問題を繰り返し学習
→分野別学習
→模擬試験モード
デモサイト
無料ユーザ登録

問題文や解説文の内容の正確性については、できるかぎりチェックをしていますが、間違いがある可能性があります。 十分ご注意の上、参考までにご利用ください。