with t as ( select distinct id, name, sum(grade_num*type)over(partition by id) g from (select grade_info.user_id id, user.name name, grade_info.grade_num grade_num, case when type='add' then 1 else -1 end type from grade_info left join user on grade_info.user_id=user.id) s) select id, name, g from t where g=(select max(g) from t) order by id