mysql计算排名

Posted 小猿笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql计算排名相关的知识,希望对你有一定的参考价值。

mysql计算排名,获取行号rowno

学生成绩表数据

SELECT * FROM table_score ORDER BY score DESC;

获取某个学生成绩排名并计算该学生和上一名学生成绩差,是并列排名

SELECT *,
(SELECT count(DISTINCT score) FROM table_score AS b WHERE a.score<b.score)+1 AS rank, #获取排名,并列
(SELECT b.score FROM table_score AS b WHERE b.score>a.score ORDER BY b.score LIMIT 1)-a.score AS subtract #获取和上一名学生成绩的差 
FROM table_score AS a WHERE a.s_id = 13; #获取学生周一的成绩排名和与上一名的成绩差

获取所有学生成绩排名-并列排名

SELECT *,
(SELECT count(DISTINCT score) FROM table_score AS b WHERE a.score<b.score)+1 AS rank #获取排名-并列
FROM table_score AS a ORDER BY rank; #获取学生成绩排名

获取所有学生成绩排名,不是并列排名。计算行号进行排名

SELECT a.*,
(@rowNum:=@rowNum+1) AS rank #计算行号 
FROM table_score AS a,
(SELECT (@rowNum :=0) ) b
ORDER BY a.score DESC;

 
来源:https://www.cnblogs.com/aeiou/p/5719396.html
更多参考:https://www.cnblogs.com/-mrl/p/9073375.html

以上是关于mysql计算排名的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中计算百分位排名

MySQL select 语句 - 如何计算当前排名

PHP 搜索引擎排名跟踪器 - RankTrackr访问片段

C#黔驴技巧之实现统计结果排名

按列值分组的列值更新mysql排名

mysql中的用户按他们的分数排名