I have an application that tracks high scores in a game.
I have a user_scores table that maps a user_id to a score.
I need to return the 5 highest scores, but only 1 high score for any specific user.
So if user X has the 5 highest scores on a purely numerical basis, I simply return the highest one and then the next 4 user scores.
I have tried to use:
SELECT user_id, score FROM user_scores ORDER BY score DESC GROUP BY user_id LIMIT 5
But it seems that MySQL drops any user_id with more than 1 score.
This should work: