WITH t1 AS ( SELECT user_id, IF(type='add',grade_num,-grade_num) AS grade_num FROM grade_info ), t2 AS ( SELECT user_id, SUM(grade_num) AS grade_num FROM t1 GROUP BY user_id ), t3 AS ( SELECT user_id, grade_num, RANK() OVER(ORDER BY grade_num DESC) AS ranking FROM t2 ), t4 AS (SELECT u.id, name, gra...