我有一个包含userID
,score
的MySQL表。
单个用户可以有很多分数,但当然可以有很多用户。
我想检索数据库中userID
的每个的最高分。
我尝试过以下但我觉得我的方式错了:
SELECT DISTINCT(`userID`), `score` FROM `myTable` ORDER BY `score` DESC
非常感谢任何帮助。
感谢
晒。
答案 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
别名列,以便按最高分数,降序(对于排行榜或您拥有的内容)获取用户列表。