题解 | #各用户等级的不同得分表现占比#

各用户等级的不同得分表现占比

https://www.nowcoder.com/practice/ebff819fd38c46db8a42dfe43ca7b33a

WITH a1 AS (
           SELECT level
                , CASE WHEN score >= 90 THEN '优'
                       WHEN score >= 75 THEN '良'
                       WHEN score >= 60 THEN '中'
                       ELSE '差'
                  END                                         AS score_grade #用CASE WHEN判断出优良中差
                , COUNT(level)                                AS ct_l        #计算出每个优良中差的个数
                , SUM(COUNT(level)) OVER (PARTITION BY level) AS sm_l        #用窗口函数计算出每个level下一共有多少人数
           FROM user_info JOIN exam_record USING (uid)
           WHERE score IS NOT NULL #筛选出有得分的人
           GROUP BY level, score_grade
           )
SELECT level, score_grade, ROUND(ct_l / sm_l,3) AS ratio
FROM a1
ORDER BY level DESC, ratio DESC

全部评论

相关推荐

仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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