明确题意:

计算所有用户完成SQL类别高难度试卷得分的截断平均值(去掉一个最大值和一个最小值后的平均值)


问题分解:

  • 关联作答记录和试卷信息:join examination_info using(exam_id);
  • 筛选SQL高难度试卷:where tag="SQL" and difficulty="hard"
  • 计算截断平均值:(和-最大值-最小值) / (总个数-2): (sum(score) - max(score) - min(score)) / (count(score) - 2)

细节问题:

  • 表头重命名:as
  • 保留1位小数:round(..., 1)

完整代码:

select tag, difficulty,
    round((sum(score) - max(score) - min(score)) / (count(score) - 2), 1) as clip_avg_score
from exam_record
join examination_info using(exam_id)
where tag="SQL" and difficulty="hard"