题解 | 获得积分最多的人(三)

获得积分最多的人(三)

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

with
t1 as(
    select
        user_id,
        (
            case
                when type='add' then grade_num
                else -grade_num
            end
        ) as grade_num
    from
        grade_info
),
t2 as(
    select
        user_id,
        sum(grade_num) as grade_num
    from
        t1
    group by
        user_id
),
t3 as(
    select
        id,
        name,
        grade_num
    from
        t2 left join user on t2.user_id=user.id
),
t4 as(
    select
        id,
        name,
        grade_num,
        dense_rank()over(order by grade_num desc) as g_rank
    from
        t3
)

select
    id,
    name,
    grade_num
from
    t4
where
    g_rank=1
order by
    id

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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