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

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

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

select level
        ,score_grade
        ,round(count(*)/grade_cnt,3) AS ratio
from(
    select level
            ,count(*) over(partition by level) AS grade_cnt
            ,case when score >= 90 then '优' when score>=75 and score<90 then '良' when score >=60 and score<75 then '中' else '差' end AS score_grade
    from exam_record er
    inner join user_info ui on er.uid = ui.uid
    where score is not null
)t
group by level
        ,score_grade
order by level desc
        ,ratio desc

1、窗口函数count(*) over(partition by level)可以计算每个等级的用户数。

全部评论

相关推荐

肖先生~:先别说工资,现在有个工作就不错了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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