小笨蛋看过来| #获得积分最多的人(三)#

获得积分最多的人(三)

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

select
    user_id,
    (case type when 'add' then grade_num else -1*grade_num end) grade_num
from
grade_info


select
    id,
    name,
    grade_num
from
(
    select 
        id,
        name,
        sum(grade_num) grade_num,
        rank() over(order by sum(grade_num) desc) rk
    from
        user u 
    join 
        (
        select
            user_id,
            (case type when 'add' then grade_num else -1*grade_num end) grade_num
        from
        grade_info
        ) a
    on u.id = a.user_id
    group by name,id
    order by grade_num desc
) b
where rk = 1
order by id asc

全部评论

相关推荐

11-03 13:18
门头沟学院 Java
包行:平时怎么刷算法题的哇,字节的手撕听说都很难
字节跳动工作体验
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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