一文搞懂SQL-mysql实现rank()排序

本文介绍了如何在SQL中实现排名排序,特别是针对MySQL数据库。通过窗口函数和等值自链接两种方法,详细阐述了如何按照价格从高到低排序,并在遇到相同价格时处理位次。尽管窗口函数在某些数据库中是标准功能,但在MySQL中不可用,文章提供了替代的自链接解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景介绍

在使用数据库制作各种统计表的工作中,经常会遇到按分数、人数或者销售额等数值进行排序的需求。某些数据库管理系统已经实现了这样的功能(如Oracle、DB2数据库的RANK函数)。

现在,我们按照价格从高到低的顺序,对下面这张商品进行排序。我们让价格相同的位次也一样,而紧接着他们的商品则有两种排序方法,一种是跳过之后的位次,另一种是不跳过之后的位次。

Products

name price
苹果 50
橘子 100
葡萄 50
西瓜 80
柠檬 30
香蕉 50

窗口函数实现

如果使用窗口函数,可以这样实现。

--排序,使用窗口函数
SELECT name,price
RANK() over (
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值