gpt4 book ai didi

MySQL 评分系统 - 从评分云中获取单个用户排名

转载 作者:行者123 更新时间:2023-11-29 14:16:45 25 4
gpt4 key购买 nike

我有一个游戏和用户的分数表,用户每个游戏可以有多个分数:

USER    GAME    SCORE   TIMESTAMP
1 1 125 123456
2 1 120 123457
1 2 10293 123458
2 2 10253 123459
1 1 130 123460

显然有更多的用户和游戏,但你明白了,我记录了他们获得的每个分数,并将其与时间戳一起存储,以获取特定时间范围内的分数。

我需要做的是获取用户在游戏中的个人排名,例如:

user 1 - game 1 - rank 1
user 2 - game 1 - rank 2

但是进行查询

SELECT COUNT(DISTINCT user) 
FROM scores
WHERE game = 1
AND score > $user_2_score
AND timestamp < $time_limit
ORDER BY score DESC

会将用户置于第三位,因为用户 1 的分数比它高两个。我认为 COUNT(DISTINCT user) 可以解决问题,但由于某种原因它没有!

(显然我从另一个查询中获得用户最高分并将其传递给此查询)

有什么方法可以在 MySQL 中执行此操作,或者我可以使用更好的查询来获得更好的结果吗?

最佳答案

也许使用 GROUP BY 会更好:

SELECT user,game, SUM(score) AS scorer
FROM scores
GROUP BY user, game
ORDER BY scorer DESC

关于MySQL 评分系统 - 从评分云中获取单个用户排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12526734/

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