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

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

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

明确题意:

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


问题分解:

  • 找到每个满足条件的用户及他们的等级,生成子表t_ml_user_level:
    • 内连接试卷作答表和用户信息表:exam_record JOIN user_info using(uid)
    • 筛选作答SQL类别的试卷得分大于过80的人:
      • 筛选分数大于80:WHERE score > 80
      • 筛选试卷类别为SQL:exam_id IN (SELECT exam_id FROM examination_info WHERE tag = 'SQL')
  • 按用户等级分组:GROUP BY level
  • 统计各等级数量:count( uid ) AS level_cnt

细节问题:

  • 表头重命名:as
  • 按数量降序排序:ORDER BY level_cnt DESC

完整代码:

SELECT level, count( uid ) AS level_cnt 
FROM (
    SELECT DISTINCT exam_record.uid AS uid, level 
    FROM exam_record
    JOIN user_info using(uid) 
    WHERE score > 80 AND exam_id IN ( 
        SELECT exam_id FROM examination_info WHERE tag = 'SQL' 
    ) 
) AS t_ml_user_level 
GROUP BY level 
ORDER BY level_cnt DESC;
SQL进阶 文章被收录于专栏

SQL进阶step by step

全部评论
SQL 130题可以写一下吗
点赞 回复 分享
发布于 2023-01-11 16:11 福建

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务