SELECT emp_id, emp_level, exam_tag FROM( SELECT er.emp_id, er.exam_id, emp_level, ROUND(TIMESTAMPDIFF(SECOND, start_time, submit_time) / 60, 1) AS time_consumed, score, avg_time, # 平均用时 avg_score, # 平均分数 tag AS exam_tag FROM exam_record er JOIN examination_info ei ON er.exam_id = ei.exam_id JOIN emp_info emp ON er.emp_id = emp.emp_id # 2. 最重要的一步,把平均用时和分数和所需变量JOIN到一起 JOIN( SELECT exam_id, ROUND(AVG(TIMESTAMPDIFF(SECOND, start_time, submit_time) / 60), 1) AS avg_time, AVG(score) AS avg_score FROM exam_record GROUP BY exam_id ) AS tb1 # 1. 找到每个exam_id平均用时和平均分数 ON tb1.exam_id = er.exam_id WHERE emp_level < 7 # 条件1 非领导员工 emp_level < 7 ) AS tb2 WHERE time_consumed < avg_time AND score > avg_score # 条件2和3 ORDER BY emp_id ASC, exam_id ASC # 条件4