過去問解きまくり研究所 ホーム

令和4年度 秋期 午前Ⅱ 問7

データ操作

AVGに関する問題

“商品”表と“商品別売上実績”表に対して,SQL文を実行して得られる売上平均金額はどれか。

商品

商品コード商品名商品ランク
S001PPPA
S002QQQA
S003RRRA
S004SSSB
S005TTTC
S006UUUC

商品別売上実績

商品コード売上合計金額
S00150
S003250
S004350
S006450
〔SQL 文〕
SELECT AVG(売上合計金額) AS 売上平均金額
    FROM 商品 LEFT OUTER JOIN 商品別売上実績
        ON 商品.商品コード = 商品別売上実績.商品コード
    WHERE 商品ランク = 'A'
    GROUP BY 商品ランク
答えと解説を見る

✓ これが正解イ150

解説

ランク A の 50、NULL、250 から NULL を除き平均150です。

左外部結合なので、商品表の6行は全て残り、売上実績の無い商品は売上合計金額が NULL になります。WHERE で商品ランクが A の行に絞ると、S001 の 50、S002 の NULL、S003 の 250 の3行です。AVG などの集合関数は NULL を計算の対象から除くので、平均は NULL でない2行で計算し、(50+250)÷2=150 となります。GROUP BY 商品ランクでランク A の1グループになるので、結果は150の1行です。集合関数は NULL の行を個数にも合計にも入れない、と覚えておけば、外部結合で生じた NULL の扱いを誤りません。

ほかの選択肢はなぜ違うのか

出典:令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問7

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)