"社員"表から、男女それぞれの最年長社員を除く全ての社員を取り出すSQL文とするために、aに入れる字句はどれか。ここで、"社員"表の構造は次のとおりであり、実線の下線は主キーを表す。 社員(社員番号(主キー),社員名,性別,生年月日) 〔SQL文〕SELECT 社員番号, 社員名 FROM 社員 AS S1 WHERE 生年月日 > ([a])
相関副問合せで同一グループ内の最小値と比較する
選択肢
- アSELECT MIN(生年月日) FROM 社員 AS S2 GROUP BY S2.性別
- イSELECT MIN(生年月日) FROM 社員 AS S2 WHERE S1.生年月日 > S2.生年月日 OR S1.性別 = S2.性別
- ウSELECT MIN(生年月日) FROM 社員 AS S2 WHERE S1.性別 = S2.性別
- エSELECT MIN(生年月日) FROM 社員 GROUP BY S2.性別
正解と解説
正解:ウ SELECT MIN(生年月日) FROM 社員 AS S2 WHERE S1.性別 = S2.性別
外側の行と同じ性別に限定した相関副問合せで最小の生年月日、すなわちその性別の最年長者の生年月日を求め、それより後に生まれた社員だけを残せば、男女それぞれの最年長者を除いた結果になる。外側の別名S1を副問合せの条件で参照している点が要である。
選択肢ごとの解説
- アGROUP BYで性別ごとに複数行が返るため、単一値を期待する比較でエラーになり、外側の行との対応も取れない。
- イORで結んでいるため同性別以外の行も比較対象に入り、性別ごとの最年長という絞り込みにならない。
- ウ正解。外側の行と同じ性別の中で最小の生年月日を求め、それより後の生年月日の社員だけを残す。
- エ副問合せ内で別名S2を定義していないのにS2を参照しており、構文として成立しない。
同じ分野の他の問題
- "従業員"表から、男女それぞれの最年長従業員を除く全ての従業員を取り出すSQL文とするために、aに入れる字句はどれか。こ…2024年度 秋期 午前II 問10
- 表Aと表Bから、どちらか一方にだけ含まれるIDを得るSQL文のaに入れる字句はどれか。 〔SQL文〕 SELECT CO…2023年度 秋期 午前II 問10
- "社員"表から、男女それぞれの最年長社員を除く全ての社員を取り出すSQL文とするために、aに入れる字句はどれか。ここで、…2022年度 秋期 午前II 問12
- "文書"表、"社員"表から結果を得るSQL文のaに入れる字句はどれか。2022年度 秋期 午前II 問6
- "社員取得資格"表に対し、SQL文を実行して結果を得た。SQL文のaに入れる字句はどれか。 社員取得資格(社員コード,資…2021年度 秋期 午前II 問8
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。