Правильный способ сделать это с помощью подзапроса.
select
u.user_id,
u.value
from
uservalue u
join
(select groupid, max(value) as max_value from uservalue group by group_id) mv
on u.value = mv.max_value and mv.group_id = u.group_id
Однако я иногда предпочитаю более простой взлом.
select max(value*100000 + user_id) - 100000, max(value) from user_value group by group_id
Убедитесь, что число (100000) больше, чем все ожидаемые вами идентификаторы. Это гарантирует, что только один user_id выбран для тех же значений, а другой выбирает их обоих.