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

获得积分最多的人(三)

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_change
    from grade_info
),
# 将每一个人的总积分计算出来
t2 as (
    select user_id, sum(grade_change) as total_grade
    from t1
    group by user_id
),
t3 as (
    select user.id, user.name, t2.total_grade as grade_num
    from t2
    left join user
    on user.id = t2.user_id
    order by grade_num desc
)
select t3.*
from t3
where grade_num = (
    select grade_num
    from t3
    limit 1
)
order by id;

全部评论

相关推荐

今年读完研的我无房无车无对象,月入还没有过万 看到他在朋友圈晒房产证,感叹自己白读了这么多年书
梦想是成为七海千秋:那咋了,双9毕业的现在还没存款呢(因为没念完),高中毕业的去直播带货月入几百万也是完全有可能的,退一万步讲,有些人刚出生父母就给买车买房了,上哪说理去,哪怕是同一个起点也会有截然不同的走向,过好自己的生活就完事了。
点赞 评论 收藏
分享
震撼沃玛一整年:查看图片
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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