"従業員"表から、男女それぞれの最年長従業員を除く全ての従業員を取り出す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でつないでおり同性別内での比較にならず、意図した絞り込みができない。
- ウ正しい。外側の行と同じ性別に限定した最小生年月日を返す相関副問合せになっている。
- エ副問合せ内で定義していない別名を参照しており、構文として成立しない。
同じ分野の他の問題
- 表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
- "社員"表から、男女それぞれの最年長社員を除く全ての社員を取り出すSQL文とするために、aに入れる字句はどれか。ここで、…2020年度 10月試験 午前II 問10
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。