平成28年度 秋期 基本情報技術者試験 午前 問29
テクノロジ/データベース“社員”表と“部門”表に対して,次のSQL文を実行したときの結果はどれか。 SELECT COUNT(*) FROM 社員,部門 WHERE 社員.所属 = 部門.部門名 AND 部門.フロア = 2 社員:社員番号,所属 11001,総務 11002,経理 11003,営業 11004,営業 11005,情報システム 11006,営業 11007,企画 12001,営業 12002,情報システム 部門:部門名,フロア 企画,1 総務,1 情報システム,2 営業,3 経理,2 法務,2 購買,2 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成28年度 秋期 基本情報技術者試験 午前 問29
- ア1
- イ2
- ウ3
- エ4
正解:ウ
解説
フロアが2の部門は情報システム,経理,法務,購買の四つです。社員表でこれらの部門名のいずれかに所属している社員を数えると,経理の11002,情報システムの11005と12002の3人が該当し,法務・購買に所属する社員はいないため,COUNT(*)の結果は3になります。
選択肢ごとの解説
- ア誤り。1は,フロア2の部門のうち一つの部門にだけ着目するなど,対象となる部門を数え漏らした場合に生じる値です。
- イ誤り。2は,情報システムか経理のどちらか一方の社員しか数えなかった場合などに生じる値です。
- ウ正しい。フロア2の部門(情報システム,経理,法務,購買)に所属する社員は,情報システムの2人と経理の1人を合わせた3人です。
- エ誤り。4は,フロアの条件を満たさない部門の社員まで誤って数えてしまった場合などに生じる値です。