LEFT OUTER JOINと集計関数AVGにおけるNULL値除外の計算

SQLの処理手順は以下の通りです。 1. 商品ランクが 'A' である行を商品表から抽出すると、商品コード S001 , S002 , S003 の3行が該当します。 2. これらを「商品別売上実績」表とLEFT OUTER JOINすると、 - S001 :売上合計金額 50 千円 - S002 :売上実績なし(LEFT JOINにより NULL となる) - S003 :売上合計金額 250 千円 3. SQLの集計関数 AVG は、NULL値を除外して平均を算出します。 $$\frac{50 + 250}{2} = 150 \text{ 千円}$$ したがって正解はイです。 NULL値を 0 として 3 行で割った誤った計算値($\frac{50 + 0 + 250}{3} = 100$)です。 ランクBの行を誤って算入した場合の数値です。 全商品の平均を誤って算出した場合の数値です。

“商品”表と“商品別売上実績”表に対して,SQL文を実行して得られる売上平均金額は何千円か。 〔SQL文〕 SELECT AVG(売上合計金額) AS 売上平均金額 FROM 商品 LEFT OUTER JOIN 商品別売上実績 ON 商品.商品コード = 商品別売上実績.商品コード WHERE 商品ランク = 'A' GROUP BY 商品ランク

問題画像
出典平成29年度 春期 システム監査技術者試験 午前Ⅱ 問17
ア
100
イ
150
ウ
225
エ
275