mysql rank() 函数用法
时间: 2023-06-19 11:07:02 浏览: 136
MySQL的rank()函数用于计算结果集中每行的排名。它可以用于根据条件对结果集进行排序并为每行分配排名。
语法如下:
```
RANK() OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
```
其中,`PARTITION BY`和`ORDER BY`是必选的参数,`partition_expression`用于指定分区表达式,`sort_expression`用于指定排序表达式,`ASC`或`DESC`用于指定排序方式。
示例:
假设有一个`score`表,其中包含学生的姓名和成绩信息:
| name | score |
| --- | --- |
| Alice | 90 |
| Bob | 80 |
| Charlie | 90 |
| David | 75 |
现在想要根据成绩对学生进行排名,可以使用如下SQL语句:
```
SELECT name, score, RANK() OVER (ORDER BY score DESC) AS ranking
FROM score;
```
执行结果如下:
| name | score | ranking |
| --- | --- | --- |
| Alice | 90 | 1 |
| Charlie | 90 | 1 |
| Bob | 80 | 3 |
| David | 75 | 4 |
其中,`RANK() OVER (ORDER BY score DESC)`表示按照`score`字段进行降序排序,并为每行分配排名。
阅读全文
相关推荐

















