令和4年度秋期 応用情報技術者試験 午前 問28

分野:データベース|実際に出題されたIPA過去問題

“商品”表に対して,次のSQL文を実行して得られる仕入先コード数は幾つか。 〔SQL文〕 SELECT DISTINCT 仕入先コード FROM 商品 WHERE (販売単価 - 仕入単価) > (SELECT AVG(販売単価 - 仕入単価) FROM 商品)

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  1
  2.  2
  3.  3
  4.  4
解答・解説を見る

正解:ウ

AI解説

設問のSQLは、商品表全体の(販売単価-仕入単価)の平均値をサブクエリで求め、その平均値を上回る利益をもつ商品の仕入先コードを重複なく(DISTINCT)抽出するものである。商品表の実データに基づき集計すると、条件を満たす仕入先コードは3つとなる。 ア: 抽出される仕入先コード数を1と数えるのは、平均超えの商品を抽出し損ねている(条件を満たす行を見落としている)場合の誤りである。 イ: 2と数えるのも同様に、平均を上回る商品を持つ仕入先の一部を数え漏らした誤りである。 ウ: 商品表のデータから(販売単価-仕入単価)の平均を計算し、それを上回る商品を扱う仕入先コードをDISTINCTで数え上げると3件になり、これが正しい件数である。 エ: 4と数えるのは、平均以下の仕入先コードまで誤って含めてしまった場合などに生じる誤りである。 💡 相関しないスカラサブクエリで平均を求め、外側のWHERE句でその平均と比較するパターンは頻出であり、「まず平均を求め、次に条件を満たす行を絞り込む」という2段階で読み解くとよい。

出典:令和4年度 秋期 応用情報技術者試験 午前 問28 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース)の過去問