一、首先,看题目要求我们可以发现是一个多表链接,为三表链接这里我们选择内连接和连接效果差不多,主要目的就是构建一个主表
二、对于每个等级,我们只挑选类别为SQL、且得分大于80的不同的用户进行统计人数,相同的用户做了多次只统计一次:其次观察给的结果,是个分组,我们可以将exam_record表根据exam_id与examination_info表连接在一起,然后将exam_record表根据uid与user_info连接在一起,这样三个表就连结在一起了。知识点:join...on...
三、按照人数的降序,相同情况下等级降序输出。order by level_cnt desc, level desc 知识点:order by
结果演示
select level, count(distinct u_i.uid) as level_cnt
from exam_record e_r
join examination_info e_i
on e_r.exam_id = e_i.exam_id
join user_info u_i
on e_r.uid = u_i.uid
where tag = 'SQL'
and score > 80
group by level
order by level_cnt desc,level desc