题解 | #作答试卷得分大于过80的人的用户等级分布#

作答试卷得分大于过80的人的用户等级分布

https://www.nowcoder.com/practice/5bc77e3a3c374ad6a92798f0ead4c744

统计作答SQL类别的试卷得分大于过80的人的用户等级分布,按数量降序排序(保证数量都不同)

  • 用户等级分布,可以看出最后的列是等级列和等级人数求和列,所以是按照等级分组,再求和
ui.level,
count(er.uid) as level_cnt
....

gruop by level
  • 作答试卷为SQL,筛选条件是tag=sql,分数大于80分的人
where tag = 'SQL' and score >= 80

注意这里的tag和score字段来自不同的表,所以需要联合表查询

最后的count(er.uid)这里需要注意,因为可能出现sql试卷编号不同出现了同样的uid,题意要求是包含这样的uid,所以不去重,(更主要是我加上去重后实例没通过)

select 
ui.level,
count(er.uid) as level_cnt
from 
user_info ui join 
exam_record er on ui.uid = er.uid 
join examination_info ei on ei.exam_id = er.exam_id

where ei.tag = 'SQL' and er.score > 80
group by ui.level 
order by level_cnt desc;
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务