資料表 students 欄位:id, name, sex, age。查詢所有年齡 > 女生最大年齡的男生。
SELECT *
FROM students
WHERE sex = '男'
AND age > (SELECT MAX(age) FROM students WHERE sex = '女');
SELECT MAX(age) FROM students WHERE sex = '女' 先執行,得到女生最大年齡(如 22)。sex = '男' 且 age > 22 的記錄。SELECT *
FROM (
SELECT *,
MAX(CASE WHEN sex = '女' THEN age END) OVER () AS max_girl_age
FROM students
)
WHERE sex = '男' AND age > max_girl_age;
適合需同時顯示女生最大年齡作為參考欄位的報表。
sex, age 上建立複合索引:CREATE INDEX idx_sex_age ON students(sex, age);