Você pode usar uma cláusula group by
para obter apenas um resultado por usuário. Por exemplo:
SELECT username, MAX(score)
FROM results
GROUP BY username
ORDER BY 2 DESC
Eu tenho uma tabela com resultados de teste, que é composta desta forma:
+-----------------------+
| id | score | username |
+-----------------------+
| 1 | 15 | mike |
| 2 | 23 | tom |
| 3 | 16 | mike |
etc..
Eu quero selecionar apenas um resultado para cada nome de usuário, mas aquele com a maior pontuação.
A saída deve ser assim:
Mike: 16
Tom: 23
Como fazer isso?
Você pode usar uma cláusula group by
para obter apenas um resultado por usuário. Por exemplo:
SELECT username, MAX(score)
FROM results
GROUP BY username
ORDER BY 2 DESC