Mysql基础之rank函数的使用

mysql8.0之前 是没有rank函数的,那我们要实现排名功能的方法可以是这样的

SELECT 
sid, sname, sage, 
 
@curRank := @curRank + 1 AS rank1
 
FROM student s, 
 
(SELECT @curRank := 0) r
 
ORDER BY sage

mysql8.0提供了rank函数

RANK()函数为结果集的分区中的每一行分配一个排名。行的等级由一加上前面的等级数指定

RANK() OVER (
    PARTITION BY <expression>[{,<expression>...}]
    ORDER BY <expression> [ASC|DESC], [{,<expression>...}]
)

partition by 作为分区,可以不进行分区。

SELECT
	sid,
	sname,
	sage,
	rank ( ) over ( ORDER BY sage ) 
FROM
	student s 
ORDER BY
	sage

 

加入分区的效果

SELECT
	sid,
	sname,
	sage,
	rank ( ) over (PARTITION by Ssex ORDER BY sage ) 
FROM
	student s 
ORDER BY
	ssex,sage

另外:rank函数的性能还是很好的

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菲斯Face

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值