我有一个可以在游戏中追踪高分的应用程序。
我有一个 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。
这应该工作:
SELECT user_id, MAX(score) FROM user_scores GROUP BY user_id ORDER BY MAX(score) DESC LIMIT 5