SELECT * FROM (SELECT id, user, MAX(score) FROM table_1 GROUP BY user) AS sub ORDER BY 'sub.score' ASC; +-----------------------+ | id | score | username | +-----------------------+ | 1 | 15 | mike | | 2 | 23 | tom | | 3 | 16 | mike | | 4 | 22 | jack | etc.. 3 mike 16 2 tom 23 4 jack 22 3 mike 16 4 jack 22 2 tom 23 SELECT * FROM (SELECT id, user, MAX(score) AS score FROM table_1 GROUP BY user ) AS sub ORDER BY sub.score ASC;