応用情報技術者 2012年 春期 午前2 問26
問題文
販売価格が決められていない“商品” 表に、次の SQL文を実行して販売価格を設定する。このとき、販売ランクがbの商品の販売価格の平均値は幾らか。
UPDATE 商品 SET 販売価格 =
CASE
WHEN 販売ランク = 'a' THEN 単価 * 0.9
WHEN 販売ランク = 'b' THEN 単価 - 500
WHEN 販売ランク = 'c' THEN 単価 * 0.7
ELSE 単価
END

選択肢
ア:1,675
イ:2,100
ウ:2,250
エ:2,500(正解)
商品の販売価格設定SQL問題【午前2 解説】
要点まとめ
- 結論:販売ランクがbの商品の販売価格の平均は2,500円となる。
- 根拠:販売ランクbは「単価 - 500」で価格を設定し、対象商品の単価は2,000円と4,000円。
- 差がつくポイント:単価の値を正確に把握し、平均値計算で誤らないことが重要。
正解の理由
販売ランクbの商品は2件あり、それぞれ単価が2,000円と4,000円です。
SQL文の条件により、販売価格は「単価 - 500」と設定されます。
したがって、販売価格はそれぞれ1,500円(2,000 - 500)と3,500円(4,000 - 500)です。
この2つの平均は 円となり、選択肢の中でエが正解です。
SQL文の条件により、販売価格は「単価 - 500」と設定されます。
したがって、販売価格はそれぞれ1,500円(2,000 - 500)と3,500円(4,000 - 500)です。
この2つの平均は 円となり、選択肢の中でエが正解です。
よくある誤解
販売ランクbの商品の単価を1つだけで判断し平均を誤るケースが多いです。
また、販売価格の計算式を誤って掛け算や割り算にしてしまうこともあります。
また、販売価格の計算式を誤って掛け算や割り算にしてしまうこともあります。
解法ステップ
- 表から販売ランクbの商品を抽出する(商品番号2002と5005)。
- それぞれの単価を確認する(2,000円と4,000円)。
- SQLのCASE文のb条件「単価 - 500」を適用し販売価格を計算。
- 2つの販売価格の平均を計算する。
- 計算結果と選択肢を照合し正解を選ぶ。
選択肢別の誤答解説
- ア(1,675):単価2,000円のみを考慮し、平均を誤って計算した可能性。
- イ(2,100):単価の値や計算式を誤り、500円引きの計算を正しく行っていない。
- ウ(2,250):単価の平均値(3,000円)から500円引いた値と誤解したケース。
- エ(2,500):正しく2件の販売価格を計算し平均を求めた正解。
補足コラム
SQLのUPDATE文でCASE文を使うと、条件ごとに異なる値を一括更新できます。
販売価格のように条件分岐が必要な場合に非常に便利です。
また、平均値計算は複数データの正確な把握が不可欠で、単価や割引額の理解が重要です。
販売価格のように条件分岐が必要な場合に非常に便利です。
また、平均値計算は複数データの正確な把握が不可欠で、単価や割引額の理解が重要です。
FAQ
Q: CASE文のELSE句は必須ですか?
A: 必須ではありませんが、条件に該当しない場合の値を設定するために使うことが多いです。
A: 必須ではありませんが、条件に該当しない場合の値を設定するために使うことが多いです。
Q: 販売価格の平均を求める際、NULLはどう扱いますか?
A: NULLは計算に含めず、値が設定されているデータのみで平均を計算します。
A: NULLは計算に含めず、値が設定されているデータのみで平均を計算します。
関連キーワード: SQL UPDATE, CASE文、平均値計算、販売価格設定、条件分岐

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

