基本情報技術者試験 ap-2023r05a-a 午前 問29: “製品”表と“在庫”表に対し,次の SQL 文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品 WHER

ap-2023r05a-a
Q 2929 / 80
“製品”表と“在庫”表に対し,次の SQL 文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品   WHERE NOT EXISTS(SELECT 製品番号 FROM 在庫     WHERE 在庫数 > 30 AND 製品.製品番号 = 在庫.製品番号) 製品
製品番号製品名単価
AB1805CD-ROM ドライブ15,000
CC5001デジタルカメラ65,000
MZ1000プリンタ A54,000
XZ3000プリンタ B78,000
ZZ9900イメージスキャナ98,000
在庫
倉庫コード製品番号在庫数
WH100AB180520
WH100CC5001200
WH100ZZ9900130
WH101AB1805150
WH101XZ300030
WH102XZ300020
WH102ZZ990010
WH103CC500140

問題本文

“製品”表と“在庫”表に対し,次の SQL 文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品 WHERE NOT EXISTS(SELECT 製品番号 FROM 在庫 WHERE 在庫数 > 30 AND 製品.製品番号 = 在庫.製品番号) 製品 在庫

選択肢

  • .1
  • .2
  • .3
  • .4

正解

. 2

解説

相関副問合せとNOT EXISTSの意味を理解しているかを問う問題です。この SQL は,製品ごとに「在庫数が30を超える在庫が1件も存在しない(NOT EXISTS)」製品の製品番号を取り出します。各製品を確認すると,AB1805は在庫150(30),CC5001は200と40,ZZ9900は130があるため在庫数30超が存在し対象外です。一方MZ1000は在庫表に行が1件もなく,XZ3000は在庫30と20で30を超える行がないため,いずれもNOT EXISTSが成立して抽出されます。よって結果はMZ1000とXZ3000の2行となり正解はイです。在庫数30「超」なのでちょうど30のXZ3000の行は条件を満たさない点が判定の鍵です。

ap-2023r05a-a過去問一覧へ戻る・問29

基本情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

基本情報技術者試験 合格.dev を App Store でダウンロード