問29令和5年度 秋期テクノロジ系
“製品”表と“在庫”表に対し,次の SQL 文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品 WHERE NOT EXISTS (SELECT 製品番号 FROM 在庫 WHERE 在庫数 > 30 AND 製品.製品番号 = 在庫.製品番号)

- ア1
- イ2
- ウ3
- エ4
正解はイ
解説 本サイト独自(IPA公表のものではありません)
イ 在庫数が30より大きい一致行があるAB1805,CC5001,ZZ9900は除かれる。MZ1000には一致行がなく,XZ3000の在庫数は30と20で,30より大きい行がないので残る。したがって結果は2行である。
- ア 条件を30以上と読み違えると,在庫数30のXZ3000まで除外し,一致行自体がないMZ1000だけを数えて1行になる。
- ウ 在庫表のWH100の行だけを調べると,CC5001とZZ9900だけが除外され,AB1805,MZ1000,XZ3000を数えて3行になる。WH101以降も調べる必要がある。
- エ 同じ製品の全在庫行が30より大きい場合だけ除外すると,CC5001だけを除き4行になる。しかし,一つでも条件を満たす一致行が存在すれば除外される。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和5年度 秋期 応用情報技術者試験 午前 問29