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 题解区好像没有找到...