ア: SELECT MIN(生年月日) FROM 社員 AS S2 GROUP BY S2.性別 誤り。この副問合せは性別ごとに最年長社員の生年月日を取得しますが、結果が複数行になるため、主問合せのWHERE句での比較に適していません。
イ: SELECT MIN(生年月日) FROM 社員 AS S2 WHERE S1.生年月日 > S2.生年月日 OR S1.性別 = S2.性別 誤り。この副問合せは、主問合せの生年月日がS2の生年月日より大きい、または性別が同じ行を条件にしていますが、適切に最年長社員の生年月日を取得できません。
ウ: SELECT MIN(生年月日) FROM 社員 AS S2 WHERE S1.性別 = S2.性別 正しい。この相関副問合せは、主問合せの性別と同じ性別の社員の中で最も早く生まれた(最年長の)社員の生年月日を取得します。主問合せでは、その生年月日より後に生まれた社員を選択することで、各性別の最年長社員を除外できます。
エ: SELECT MIN(生年月日) FROM 社員 GROUP BY S2.性別 誤り。この副問合せは構文エラーです。S2というエイリアスが定義されておらず、GROUP BY句で使用できません。
【答え】
ウ: SELECT MIN(生年月日) FROM 社員 AS S2 WHERE S1.性別 = S2.性別