登录
首页 >  数据库 >  MySQL

mysql 计算排名,生成排行榜

来源:SegmentFault

时间:2023-01-23 17:05:21 253浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《mysql 计算排名,生成排行榜》,介绍一下MySQL、PHP,希望对大家的知识积累有所帮助,助力实战开发!

mysql计算排名,获取行号rowno

学生成绩表数据

SELECT * FROM table_score ORDER BY score DESC;

945788-20160729181538059-1516798261.png

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

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

945788-20160729181752919-1952308523.png

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

SELECT *,
(SELECT count(DISTINCT score) FROM table_score AS b WHERE a.score

945788-20160729182353356-1008764020.png

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

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

945788-20160729183045013-563930309.png

好了,本文到此结束,带大家了解了《mysql 计算排名,生成排行榜》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表