MySQL GROUP BY并按列对组进行排序

时间:2016-06-19 12:15:13

标签: mysql

我想按特定列对组进行排序。

我尝试了以下内容:

SELECT u.level, max(u.score),n.nick 
FROM database.userdata u, database.nicks n 
WHERE n.user = u.id 
GROUP BY level

但这仅打印最高分,而不是此分数的用户名。

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试这种方式:

SELECT n.nick, u1.score, u1.level 
FROM database.nicks AS n
JOIN database.userdata AS u1 ON n.user = u1.id
JOIN (
   SELECT level, max(score) AS score 
   FROM database.userdata 
   GROUP BY level
) AS u2 ON u1.level = u2.level AND u1.score = u2.score
相关问题