gpt4 book ai didi

mysql - 获取用户在评分表中的排名

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:01 25 4
gpt4 key购买 nike

我有一个简单的 MySQL 表,用于保存比赛的分数。看起来像这样:

**Id  -  UserId  -  Score**

问题是:如何获得用户排名?我有一个用户 ID

一个例子

**Id - UserId - Score**

1 - AAAA - 150

2 - BBBB - 110

3 - BBBB - 120

4 - CCCC - 102

5 - AAAA - 130

在这种情况下,IdUser CCCC 排名将为 3,因为他获得了第三高分。

查询应返回一行,其中(仅)包含所需的排名。

谢谢!

最佳答案

如果您有用户 ID,您希望返回得分相同或更高的用户数。

select count(*) as `rank`
from table t join
(select score from table t where userId = @USERID) var
on t.score >= var.score;

如果你有重复的分数,你可能真的想要:

select 1 + count(*) as `rank`
from table t join
(select score from table t where userId = @USERID) var
on t.score > var.score;

不清楚您对重复用户的需求。我可能会建议:

select 1 + count(*) as `rank`
from (select userId, max(score) as score
from table t
group by userId
) t join
(select max(score) from table t where userId = @USERID) var
on t.score > var.score;

关于mysql - 获取用户在评分表中的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com