选择分组到特定标识符的值

Tob*_*ede 1 mysql sql database

我有一个跟踪游戏高分的应用程序.

我有一个user_scores表,用于将user_id映射到分数.

我需要返回5个最高分,但对于任何特定用户只有1个高分.

因此,如果用户X在纯数字基础上具有5个最高分数,我只返回最高分数,然后返回接下来的4个用户分数.

我试过用:

SELECT user_id, score 
FROM user_scores 
ORDER BY score DESC 
GROUP BY user_id 
LIMIT 5
Run Code Online (Sandbox Code Playgroud)

但似乎MySQL丢弃任何超过1分的user_id.

Ale*_*kov 6

这应该工作:

SELECT user_id, MAX(score)
FROM user_scores 
GROUP BY user_id 
ORDER BY MAX(score) DESC 
LIMIT 5
Run Code Online (Sandbox Code Playgroud)