「製品」表と「在庫」表に対し,次の SQL 文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品 WHERE NOT EXISTS (SELECT 製品番号 FROM 在庫 WHERE 在庫数 > 30 AND 製品.製品番号 = 在庫.製品番号) 製品(製品番号, 製品名, 単価) AB1805, CD-ROMドライブ, 15000 / CC5001, デジタルカメラ, 65000 MZ1000, プリンタA, 54000 / XZ3000, プリンタB, 78000 / ZZ9900, イメージスキャナ, 98000 在庫(倉庫コード, 製品番号, 在庫数) WH100,AB1805,20 / WH100,CC5001,200 / WH100,ZZ9900,130 WH101,AB1805,150 / WH101,XZ3000,30 / WH102,XZ3000,20 WH102,ZZ9900,10 / WH103,CC5001,40

テクノロジ系・一部改変

ア 1

なぜ違う: 該当製品は 2 件。

イ 2
ウ 3

なぜ違う: 30 超の在庫をもつ製品を含めてしまった値。

エ 4

なぜ違う: 条件を満たさない製品まで数えた値。

正解: イ

要点: 在庫数>30の行が一つも無い製品。MZ1000(在庫なし)とXZ3000(30,20)=2行。

NOT EXISTS は「在庫数が 30 を超える在庫行が一つも存在しない製品」を選ぶ。AB1805(150)・CC5001(200)・ZZ9900(130) は 30 超の在庫があり除外。MZ1000 は在庫行なし、XZ3000 は 30 と 20 で 30 超なし。よって MZ1000・XZ3000 の 2 行。

この問題に出てくる用語

関連キーワード: SQL・NOT EXISTS・相関副問合せ・計算

同じ回の前後の問題

テクノロジ系の他の問題

アプリで弱点分析つきの演習ができます

App Store

応用情報技術者の学習アプリ(応用情報トレ)

出典:令和5年度 秋期 応用情報技術者試験 午前 問29