博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让你少走弯路的MySQL中rank()、row_number()、dense_rank()排序
阅读量:4130 次
发布时间:2019-05-25

本文共 804 字,大约阅读时间需要 2 分钟。

create table students(	id int(4)  auto_increment primary key,	name varchar(50) not null, 	score int(4) not null	);

先简单的创建一个测试用的表,将数据插入表中。

insert into students(name,score) values('curry', 100),	('klay', 99),	('KD', 100), 	('green', 90), 	('James', 99), 	('AD', 96);

查看一下插入的数据:

select * from students;

 

开始使用三种不同的方法进行排序:

select id, name, rank() over(order by score desc) as r from students;select id, name, DENSE_RANK() OVER(order by score desc) as dense_r from students;select id, name, row_number() OVER(order by score desc) as row_r from students;

当然也可以写在同一张表中:

select id, name, rank() over(order by score desc) as r,	DENSE_RANK() OVER(order by score desc) as dense_r,	row_number() OVER(order by score desc) as row_rfrom students;

需要注意的一点是as后的别名,千万不要与前面的函数名重名,否则会报错。

结果是很清楚的,具体就不解释了,相信大家看到结果都 很清楚三种排序的差别了。

 

 

 

 

转载地址:http://fvfvi.baihongyu.com/

你可能感兴趣的文章
element ui 弹窗在IE11中关闭时闪现问题修复
查看>>
vue 遍历对象并动态绑定在下拉列表中
查看>>
Vue动态生成el-checkbox点击无法选中的解决方法
查看>>
python __future__
查看>>
MySQL Tricks1
查看>>
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(三)
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>