応用情報技術者試験 応用情報技術者試験 令和5年度秋期 午前29: “製品”表と“在庫”表に対し,次の SQL 文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品 WHER

応用情報技術者試験 令和5年度秋期 午前
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
この問の正解率:67.89%(464件)

問題本文

“製品”表と“在庫”表に対し,次の 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の行は条件を満たさない点が判定の鍵です。

応用情報技術者試験 令和5年度秋期 午前過去問一覧へ戻る・問29