我需要一些帮助来处理在 MySQL 中排名时的关系。例如:
播放器 |积分
- 玛丽:90
- 鲍勃:90
- 吉姆:65
- 凯文:12
Bob 和 Mary 应该都排名第一。吉姆应该是#3。凯文应该是#4。
MySQL:
SET @rank=0;
SELECT @rank:=@rank +1 as rank, player, points FROM my_table
如何更改 SELECT 语句,以便在平局的情况下排名正确?
我的现实生活中的问题比较复杂,但如果我了解如何解决上述问题,那么我就应该准备好了。
最佳答案
假设名字是唯一的
SELECT t1.name, (SELECT COUNT(*) FROM table_1 t2 WHERE t2.score > t1.score) +1
AS rnk
FROM table_1 t1
关于并列情况下的 MySQL 排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100010/