
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 社員.社員コード、 社員.社員名
AVG()関数で計算し、集計対象の列でグループ化しなければ正しい集計結果が得られません。
GROUP BY句の指定が適切か、集計関数の使い方、列名の誤りに注意することが重要です。
AVG(勤務成績)で勤務成績の平均を正しく計算しています。
WHERE句で社員コードを結合条件に指定し、社員ごとの勤務成績を正しく紐付けています。
GROUP BYに集計対象の列を指定すると、平均値が正しく計算されません。
AVG()と
COUNT()を組み合わせる必要はありません。
AVG()関数を使って勤務成績の平均を計算する。
GROUP BY 勤務成績としており、勤務成績ごとにグループ化してしまうため、社員ごとの平均が求められません。
AVG(勤務成績)で平均を正しく計算しています。
AVG(勤務成績)/COUNT(勤務成績)と誤った計算をしており、
AVG()関数だけで平均は求められます。
MAX(勤務成績)/COUNT(*)と平均ではなく最大値を使っており、正しい平均値が求められません。
SUM()、
COUNT()、
AVG()、
MAX()、
MIN()があります。
AVG()で簡単に求められ、
GROUP BY句で集計単位を指定します。
JOIN句を使うのが一般的ですが、問題文のようにカンマ区切りの結合も可能です。
GROUP BY句に複数の列を指定する理由は?
AVG()関数はどのように計算される?

\ せっかくなら /
データベーススペシャリストを
クイズ形式で学習しませんか?
すぐに利用可能!