明确题意:
计算所有用户完成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"