ウカマル応用情報技術者ログイン

平成27年度 秋期 応用情報技術者 問29

テクノロジ系

“倉庫別商品在庫集計”表から在庫数の合計を求めたい。倉庫番号'C003'の倉庫で在庫数が100以上の商品に対して,全ての倉庫における在庫数の合計を求めるSQL文のaに入る適切な字句はどれか。ここで,該当する商品は複数存在するとともに在庫数が100未満の商品も存在するものとする。また,実線の下線は主キーを表す。

倉庫別商品在庫集計(倉庫番号,商品コード,在庫数)

〔SQL文〕
SELECT 商品コード, SUM(在庫数) AS 在庫合計 FROM 倉庫別商品在庫集計
    WHERE a
    GROUP BY 商品コード
選択肢
正解と解説

正解 ウ

副問合せが複数の商品コードを返すので、そのどれかに一致する行を選ぶIN述語を使います。

副問合せは、倉庫番号が'C003'で在庫数が100以上の商品コードを返します。該当する商品は複数あるため、結果は複数行になります。IN述語は、左辺の値が副問合せの結果のどれかに一致すれば真になります。そのため、該当する商品の行だけが全ての倉庫から選ばれます。選んだ行をGROUP BY 商品コードでまとめ、SUM(在庫数)で全倉庫の在庫合計を求めます。

ア:比較演算子の=は、右辺の副問合せが1行だけを返すことを前提にしています。副問合せが複数行を返すので、エラーになります。

イ:= ALLは、副問合せの結果の全ての値と一致するときだけ真になります。該当する商品コードは複数あり、全てと同時に一致する値はないので、1行も選ばれません。

エ:EXISTSは、副問合せが1行でも返せば真になります。この副問合せは外側の行と関係しないので常に真になり、全商品の在庫合計が求められます。

出典:平成27年度 秋期 応用情報技術者試験 問29

全年度から出題。10問で実力を判定します。登録不要。

出典:平成27年度 秋期 応用情報技術者試験 問29(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方