基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [平成31年春午前] [平成31年春午後]

平成20年 春期 基本情報技術者 午前 問58
問58   部署コードを探すSQL 文

 “社員"表から,職務がプログラマである社員が5人未満の部署の部署コードを 探す SQL 文として,適切なものはどれか。ここで,“社員"表は次の構造であり, 各列にはナル値は含まれないものとする。

  社員 ( 社員番号,社員名,部署コード,職務 ) ア SELECT DISTINCT 部署コード FROM 社員 S1
    WHERE 5 > (SELECT COUNT(S2.社員番号) FROM 社員 S2
         WHERE S1.部署コード = S2.部署コード
         AND S2.職務 = 'プログラマ')

イ SELECT DISTINCT 部署コード FROM 社員 S1
    WHERE 5 > (SELECT COUNT(S2.社員番号) FROM 社員 S2
         WHERE S1.部署コード = S2.部署コード
         AND S2.職務 <> 'プログラマ')

ウ SELECT DISTINCT 部署コード FROM 社員 S1
    WHERE EXISTS (SELECT * FROM 社員 S2
         WHERE S1.部署コード = S2.部署コード
         AND S2.職務 = 'プログラマ')
    GR0UP BY S1.部署コード HAVING COUNT(*) < 5

エ SELECT DISTINCT 部署コード FROM 社員 S1
    WHERE S1.部署コード IN (SELECT S2.部署コード FROM 社員 S2
         WHERE S1.部署コード = S2.部署コード
         AND S2.職務 = 'プログラマ'
         GR0UP BY S1.部署コード HAVING COUNT(*) < 5 )


解答←クリックすると正解が表示されます

解説

ア:正しい。

イ:誤り。 「S2.職務 <> 'プログラマ'」から 「職務がプログラマ以外の社員」となる。結果として、プログラマ以外の社員が5人より 多い部署の部署コードが出力される。

ウ:誤り。職務がプログラマの社員が1人以上の部署で、その部署の社員数が5人未満の 部署の部署コードが出力される。

エ:誤り。正しい出力ができない。


[←前の問題] [次の問題→] [問題一覧表] [分野別] [キーワード索引] [基本情報技術者試験TOP ]