初級シスアドSQL過去問題解説
解答:ウ
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講座グループ化
スポンサードリンク