一、明确需求
- 题目要求:找到SQL试卷得分不小于该类试卷平均得分的用户最低得分。
 
- 需求解读:需要限制试卷类别为"SQL",计算平均得分
 
- 观察数据:exam_record表只有exam_id没有“sql”类别,需要联结examination_info匹配tag进行限制。
 
二、解题思路
- exam_record联结examination_info表,限制tag="SQL"作为源表t1
 
- 对t1根据tag为一组计算avg(score)
 
- 对2的结果作为where子查询的筛选条件,对整个结果取min(score)
 
三、代码实现
#筛选数据
with 
t1 as 
(
select a.*,b.tag
from exam_record a inner join examination_info b using(exam_id)
where b.tag = 'SQL' 
),
# 计算平均值
t2 as 
(
select avg(score) avg_score
from t1
group by tag
)
select min(score) min_score_over_avg
from t1 
where score >= (select avg_score from t2)