SQL - 获取每个用户的最高值(不同?)
我有一个包含 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要带有
group by
子句的聚合函数max
:group by
表示:“嘿,MySQL,给我最大的分数
,但按userid
对其进行分区。”这样,您就可以获得每个userid
的最高分数。此外,您可以按别名列
排序
,以便按最高分数降序获取用户列表(对于排行榜或您拥有的其他内容)。You want the aggregate function
max
with thegroup by
clause:The
group by
says, "Hey, MySQL, get me the maxscore
, but partition it byuserid
." This way, you get the max score for eachuserid
.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).