select id, name, grade_num from ( select user_id, sum(if(type = 'reduce', grade_num * (-1), grade_num)) as grade_num, dense_rank() over(order by sum(if(type = 'reduce', grade_num * (-1), grade_num)) desc) as rk from grade_info group by user_id ) s join user u on u.id = s.user_id and rk = 1
题解区好像没有找到这种解答,所以特此分享一下,主要是嵌套的层数比其他解法要少一些。
本人的其他牛客解题思路分享在了个人博客,欢迎来看:https://blog.csdn.net/m0_37738114/article/details/149281128?sharetype=blogdetail&sharerId=149281128&sharerefer=PC&sharesource=m0_37738114&spm=1011.2480.3001.8118



京公网安备 11010502036488号