データベーススペシャリスト 平成21年春期 午前U 問9

午前U 問9

"社員"表と"人事異動"表から社員ごとの勤務成績の平均を求める適切なSQL文はどれか。ここで,求める項目は,社員コード,社員名,勤務成績(平均)の3項目とする。
09.gif/image-size:399×247

分類

テクノロジ系 » データベース » データ操作

正解

解説

社員ごとの勤務成績を集計するためには、"社員"表と"人事異動"表を社員コードをキーとして結合(@社員表.社員コード=人事移動表.社員コード)し、社員ごとでグループ化(AGROUP BY 社員コード,社員名)します。下の図は上記の2つの処理の過程で生成される中間表です。
09_1.gif/image-size:535×288
この時点で社員ごとにグルーピングされているため「AVG(勤務成績)」でグループごとの値の平均をとって、社員コードと社員名と共に表示すれば社員ごとの勤務成績の平均値を示す表が得られます。
09_2.gif/image-size:199×59
  • GROUP BY句を使用する際にSELECT文で指定可能な列は、GROUP BY句でグループ化対象の列、又は集計関数です。このSQL文ではGROUP BY句で指定されていない列をSELECT文で指定しているため構文エラーとなります。
  • 正しい。
  • 集計関数の指定部分が間違っています。AVG()は平均値が算出する集計関数です。もしAVG()を使わずに平均値を求めるならば「SUM(勤務平均)/COUNT(*)」となります。
  • 「ウ」と同様に集計関数の指定部分が間違っています。
© 2016-2019 データベーススペシャリストドットコム All Rights Reserved.

Pagetop