SELECT MIN(score)
FROM exam_record AS e1
    LEFT JOIN examination_info AS e2
    USING(exam_id)
WHERE tag = 'SQL' 
    AND score >=  AVG(CASE WHEN tag = 'SQL' THEN duration END)

这种写法是不对的,AVG(CASE WHEN) 放在SELECT 里没有问题,但WHERE语句在SELECT之前执行,起到过滤行的作用,此时还没有分组,所以无法使用聚合型函数。解决方法是把AVG换成一个子查询。子查询执行顺序在外层查询之前,以查询结果的形式输出参数。