平成23年度 特別 基本情報技術者試験 午前 問30
テクノロジ/データベース次の表は,営業担当者のある年度の販売実績である。この表の第1期から第4期の販売金額の平均が4,000万円以上で,どの期でも3,000万円以上販売している営業担当者の名前を求めるSQL文として,適切なものはどれか。ここで,金額の単位は千円とする。 販売実績 番号123 名前 山田 一郎 第1期29,600 第2期31,900 第3期36,600 第4期41,500 番号594 名前 鈴木 太郎 第1期43,500 第2期45,300 第3期30,400 第4期46,400 番号612 名前 佐藤 花子 第1期49,600 第2期39,400 第3期42,300 第4期51,100 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成23年度 特別 基本情報技術者試験 午前 問30
- アSELECT 名前 FROM 販売実績 WHERE (第1期+第2期+第3期+第4期) / 4 >= 40000 OR 第1期 >= 30000 OR 第2期 >= 30000 OR 第3期 >= 30000 OR 第4期 >= 30000
- イSELECT 名前 FROM 販売実績 WHERE (第1期+第2期+第3期+第4期) >= 40000 AND 第1期 >= 30000 AND 第2期 >= 30000 AND 第3期 >= 30000 AND 第4期 >= 30000
- ウSELECT 名前 FROM 販売実績 WHERE 第1期 > 40000 OR 第2期 > 40000 OR 第3期 > 40000 OR 第4期 > 40000 AND 第1期 >= 30000 OR 第2期 >= 30000 OR 第3期 >= 30000 OR 第4期 >= 30000
- エSELECT 名前 FROM 販売実績 WHERE (第1期+第2期+第3期+第4期) >= 160000 AND 第1期 >= 30000 AND 第2期 >= 30000 AND 第3期 >= 30000 AND 第4期 >= 30000
正解:エ
解説
求める条件は「平均が4,000万円以上」かつ「どの期も3,000万円以上」の両方を満たすことなので,SQLではAND条件で結ぶ必要があります。金額の単位は千円なので,4,000万円は40000,3,000万円は30000と表します。したがって,(第1期+第2期+第3期+第4期)/4>=40000は(第1期+第2期+第3期+第4期)>=160000と同値であり,これに各期>=30000のAND条件を組み合わせたエが正しい条件式です。
選択肢ごとの解説
- ア誤り。OR条件で結ばれているため,1期だけでも3万以上あれば,平均が4千万未満でも該当してしまい,条件を正しく表せていません。
- イ誤り。(第1期+第2期+第3期+第4期)>=40000は,単位が千円であるため合計4千万円(平均1千万円)以上という誤った基準になっており,本来求めるべき平均4千万円以上(合計1億6千万円以上)と一致しません。
- ウ誤り。ORとANDが混在しており,優先順位の関係で意図した「平均4千万以上かつ全期3千万以上」という条件になっていません。
- エ正しい。合計が160000(千円単位で1億6千万円,すなわち平均4千万円)以上であることと,各期が30000(3千万円)以上であることをANDで結んでおり,条件に合致します。