背景介绍
在使用数据库制作各种统计表的工作中,经常会遇到按分数、人数或者销售额等数值进行排序的需求。某些数据库管理系统已经实现了这样的功能(如Oracle、DB2数据库的RANK函数)。
现在,我们按照价格从高到低的顺序,对下面这张商品进行排序。我们让价格相同的位次也一样,而紧接着他们的商品则有两种排序方法,一种是跳过之后的位次,另一种是不跳过之后的位次。
Products
name | price |
---|---|
苹果 | 50 |
橘子 | 100 |
葡萄 | 50 |
西瓜 | 80 |
柠檬 | 30 |
香蕉 | 50 |
窗口函数实现
如果使用窗口函数,可以这样实现。
--排序,使用窗口函数
SELECT name,price
RANK() over (