SQL - 为每个用户获取最高价值(DISTINCT?)

时间:2012-01-09 17:30:10

标签: mysql sql select distinct

我有一个包含userIDscore的MySQL表。
单个用户可以有很多分数,但当然可以有很多用户。

我想检索数据库中userID的每个的最高分

我尝试过以下但我觉得我的方式错了:

SELECT DISTINCT(`userID`), `score` FROM `myTable` ORDER BY `score` DESC

非常感谢任何帮助。

感谢
晒。

1 个答案:

答案 0 :(得分:6)

您希望聚合函数max具有group by子句:

select
    userid,
    max(score) as maxscore
from
    mytable
group by userid
order by maxscore desc

group by说,“嘿,MySQL,给我最大值score,但按userid分区。”这样,您就可以获得每个userid的最高分数。

此外,您可以order by别名列,以便按最高分数,降序(对于排行榜或您拥有的内容)获取用户列表。