ア: 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.性別 誤り。GROUP BY句でエイリアスS2を使用していますが、定義されていないため構文エラーとなります。
【答え】
ウ: SELECT MIN(生年月日) FROM 社員 AS S2 WHERE S1.性別 = S2.性別