好像不算困难,比较简单
select id,name,grade_sum from (
select user_id ,dense_rank() over(order by grade_sum desc)t_rank ,grade_sum
from (select user_id,sum(grade_num) grade_sum from (
select user_id,
case type
when 'reduce'
then -grade_num
else grade_num
end
as grade_num
from grade_info
)r1
group by user_id
)r2
)r3
inner join user
on user_id=id
where t_rank=1
order by id 


京公网安备 11010502036488号