Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Como selecionar linhas com valor máximo de um campo


Se você quiser obter empates, você pode fazer algo assim:
select s.*
from scores s
where s.score = (select max(s2.score) from scores s2 where s2.level = s.level);

Você pode obter uma linha por nível agregando isso:
select s.level, s.score, group_concat(s.user_id)
from scores s
where s.score = (select max(s2.score) from scores s2 where s2.level = s.level)
group by s.level, s.score;

Isso combina os usuários (se houver mais de um) em um único campo.