https://leetcode-cn.com/problems/tournament-winners/
select a.group_id,a.player_id from(
select *,row_number() over(partition by a.group_id order by a.score desc)id from(
select a.group_id,a.player_id,sum(a.score) score from(
select a.group_id,a.player_id,sum(ifnull(b.first_score,0)) score
from Players a left join Matches b on a.player_id=b.first_player
group by a.group_id,a.player_id
union all
select a.group_id,a.player_id,sum(ifnull(b.second_score,0)) score
from Players a left join Matches b on a.player_id=b.second_player
group by a.group_id,a.player_id
)a
group by a.group_id,a.player_id
)a
)a where a.id=1
网友评论