MySQL并列排名和顺序排名查询


当前第2页 返回上一页

1

2

3

我们发现结果不是我们预期的。因为我们还没有去重。比87大的有俩个都是99,那么87的rank就是2+1=3,而我们要的排名连续不断的。所以用distinct

关键字去重。

第三步:select id, score, (select count(distinct(score)) from scores as b where b.score > a.score ) + 1 as rank from scores as a order by rank;

Snipaste_2019-07-01_17-03-55.png

顺序排名预期结果

Snipaste_2019-07-01_17-05-07.png

1

2

3

顺序排名我们就按照score字段倒序查询即可,只不过是用msyql的变量去做rank。mysql中的变量是用‘@’跟上变量名称。@rowNum

php中我们用$rowNum。mysql中赋值用 := 来赋值。(select @rowNum :=0) r 是给变量@rowNum一个初始值为0。这个很好理解。就是

按照我们要排名的字段倒序去查询,再用mysql变量给每一条结果加一个排列序号。

sql语句

1

select t.id, t.score,@rowNum := @rowNum +1 as rank from (select @rowNum :=0) r, scores as t order by t.score desc ;

结果

Snipaste_2019-07-01_17-05-54.png

更多SQL的相关技术文章,请访问SQL教程栏目进行学习!

以上就是MySQL并列排名和顺序排名查询的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

mysql 百万级分页优化(mysql千万级快速分页)

mysql的学习笔记

如何查看本机是否安装了mysql

mysql常用sql语句总结包含复杂sql查询

简单介绍mysql中索引的使用方法

mysql表的连接查询有哪些?

mysql的查询优化详解

mysql单表数据不要超过500万行:是经验数值,还是黄金铁律?

mysql cpu占用高的问题解决方法小结

linux上怎么使用cmake安装mysql

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...