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

Sha*_*ali 2 mysql sql select distinct

我有一个MySQL表,包含userID,score.
单个用户可以有很多分数,但当然可以有很多用户.

我想找回得分最高的,每对中userID的数据库中.

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

SELECT DISTINCT(`userID`), `score` FROM `myTable` ORDER BY `score` DESC
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

谢谢
Shai.

Eri*_*ric 6

你想要聚合函数maxgroup by子句:

select
    userid,
    max(score) as maxscore
from
    mytable
group by userid
order by maxscore desc
Run Code Online (Sandbox Code Playgroud)

group by说,"嘿,MySQL的,给我最大score,但对它进行分区userid." 这样,您就可以获得每个的最高分数userid.

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