Използвайте row_number()
:
select group_id, player_idfrom ( select p.*, row_number() over( partition by p.group_id order by case when m.first_player =p.player_id then m.first_score else m.second_score end desc, player_id ) rn от играчи p вътрешно присъединяване съвпада с m на m.first_player =p.player_id или m.second_player =p.player_id) xкъдето rn =1
<предварителен код>| group_id | играч_ид || -------- | --------- || 1 | 65 || 2 | 20 | Забележка:има само един играч в група 3 (player_id 40) и той не е участвал в нито една игра.