with re as (select *, sum(case type when 'add' then grade_num else grade_num*(-1) end) as grade from grade_info group by user_id ) select u.id, u.name, re.grade as grade_sum from re join user as u on re.user_id = u.id where re.grade in (select max(grade) from re) order by u.id asc;