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

获得积分最多的人(三)

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

用子函数先把加减的分数搞对,然后在窗口函数就好了
select u.id,u.name,t.grade_sum
from (select user_id,
             sum(num) as grade_sum,
             rank()over(order by sum(num) desc) as a
      from (select user_id, 
             case when type="add" then grade_num*1 else grade_num*-1 end as num
             from grade_info) g
       group by g.user_id) as t
join user u
on u.id = t.user_id
where t.a = 1;

全部评论

相关推荐

2025-12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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