并列情况下的 MySQL 排名

标签 mysql select rank

我需要一些帮助来处理在 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/

相关文章:

PHP - 查询空值

php - MySQL:如果第 2 列中不存在值,如何更新第 1 列

sql - 将 INT 转换为 VARCHAR SQL

jquery - 只选择第三里

r - 计算向量中每个索引的秩

mysql - 我如何在mysql中找到丢失的id

mysql - codeigniter 3 $query = $this->db->query($queri_str);返回 0 结果

MySql - 限制查询的 SELECT 子句中允许的计算

python - Pandas 按多列排名

sql - 如何对数据集进行密集排名