admin

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

sql

我有一个可以在游戏中追踪高分的应用程序。

我有一个 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

但是,似乎MySQL丢弃了得分高于1的任何user_id。


阅读 312

收藏
2021-07-01

共1个答案

admin

这应该工作:

SELECT user_id, MAX(score)
FROM user_scores 
GROUP BY user_id 
ORDER BY MAX(score) DESC 
LIMIT 5
2021-07-01