スポンサードリンク

初級シスアド 平成16年 春期 問30 解説

解答:ウ

SELECT句はすべての回答群共通である。

SELECT 部署コード,部署名,AVG(給与)

AVGは指定された列の平均を求める関数である。この問題の場合は、給与の平均を求める。

次にFROM句である。FROM句では使用する表を指定する。SELECT句で表Aの部署コードと給与、表Bの部署名を表示する。したがって、表Aと表Bを使う。FROM句は以下のようになる。

FROM A,B

次にWHERE句であるが、部署名を表示させるので表Aの所属コードに対応した部署名を参照するために表Aと表Bを結合しなければならない。結合する列は、表Aの所属コードと表Bの部署コードである。そのほかの抽出条件はない。したがって、WHERE句は以下のようになる。

WHERE A.所属コード=B.部署コード

「問題文に部署ごとの平均給与」とあるので部署でグループ化する必要がある。グループ化はGROUP BY句で指定する。ただし、グループ化する列の指定は、計算式とグループ関数を除くSELECT句で指定された列をすべて指定しなければならない。したがって、GROUP BY句は、次のように記述する。

GROUP BY 所属コード,部署名

以上をまとめるとSELECT文はつぎのようになる。

SELECT 部署コード,部署名,AVG(給与)
FROM A,B
WHERE A.所属コード=B.所属コード
GROUP BY 所属コード,部署名

関連ページ

SQL講座グループ化
SELECT文におけるグループ化の解説
初級シスアドSQL過去問題
初級シスアドで出題されたSQLの過去問題とその解説