SQL的RANK函数通过对表中的数据排序并分配排名,按指定范围内的每一行进行排序。它的语法为RANK() OVER (PARTITION BY partition_expression ORDER BY order_expression),其中partition_expression用于确定分区,order_expression用于指定排序表达式。
SQL排名函数RANKの使い方
概要
RANK函数是一个SQL排名函数,用于对表中的数据进行排序并分配排名。它返回指定范围内的每一行的排名,与行中的实际值无关。
语法
RANK() OVER (PARTITION BY partition_expression ORDER BY order_expression)
参数
用法
示例
员工表
| 姓名 | 部门 | 销售额 |
|---|---|---|
| 约翰 | 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开始。