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

获得积分最多的人(二)

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

# 运用左连接将每一个用户的积分变化记录查找出来
with t1 as (
    select user_id as id, b.name,
    (case when a.type = 'add' then grade_num else -grade_num end) as jifen_change
    from grade_info as a
    left join user as b
    on a.user_id = b.id
),
t2 as (
    select id, name, sum(jifen_change) as grade_num
    from t1
    group by id, name
    order by id
)
select *
from t2
where grade_num = (
    select max(grade_num) as grade_num
    from t2
);

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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