SQL - 获取每个用户的最高值(不同?)

发布于 2024-12-25 18:30:30 字数 361 浏览 1 评论 0原文

我有一个包含 userID,score 的 MySQL 表。
一个用户可以有很多分数,当然也可以有很多用户。

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

我已经尝试了以下方法,但我觉得我的方式是错误的:

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

任何帮助将不胜感激。

谢谢
谢伊。

I have a MySQL table containing userID,score .
A single user can have many scores, but there can be many users, of course.

I want to retrieve the highest score for-each of the userID's in the database.

I've tried the following but I feel like i'm in the wrong way :

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

Any assistance will be greatly appreciated.

Thanks
Shai.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情愿 2025-01-01 18:30:30

您需要带有 group by 子句的聚合函数 max

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

group by 表示:“嘿,MySQL,给我最大的 分数,但按userid对其进行分区。”这样,您就可以获得每个userid 的最高分数。

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

You want the aggregate function max with the group by clause:

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

The group by says, "Hey, MySQL, get me the max score, but partition it by userid." This way, you get the max score for each userid.

Additionally, you can order by the aliased column so you get the list of users by max score, descending (for a leaderboard or what have you).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文