sql排名函数rank怎么用-SQL
SQL排名函数RANKの使い方
概要
RANK函数是一个SQL排名函数,用于对表中的数据进行排序并分配排名。它返回指定范围内的每一行的排名,与行中的实际值无关。
语法
RANK() OVER (PARTITION BY partition_expression ORDER BY order_expression)
登录后复制
参数
- partition_expression:将数据划分为组的可选表达式。如果省略,则整个表将被视为一个组。
- order_expression:用于对数据进行排序的表达式。
用法
- 确定分区:如果需要按组对数据进行排名,请指定分区表达式。否则,省略该参数。
- 指定排序表达式:指定用于对数据进行排序的表达式。该表达式可以是数值列、日期列或其他可比较的列。
- 应用RANK函数:使用RANK函数对数据进行排序并分配排名。
示例
员工表
姓名 | 部门 | 销售额 |
---|---|---|
约翰 | A | 100 |
玛丽 | B | 200 |
保罗 | A | 150 |
苏珊 | B | 250 |
按部门排名:
SELECT 姓名, 部门, RANK() OVER (PARTITION BY 部门 ORDER BY 销售额 DESC) AS 排名 FROM 员工表 ORDER BY 排名;
登录后复制
输出:
姓名 | 部门 | 排名 |
---|---|---|
苏珊 | B | 1 |
玛丽 | B | 2 |
保罗 | A | 1 |
约翰 | A | 2 |
在该示例中,数据按部门进行分区,然后按销售额降序排序。对于每个部门,RANK函数分配了唯一的排名,从1开始。