rank() over(partition by
时间: 2023-12-21 09:04:05 浏览: 132
Oracle查询中OVER (PARTITION BY ..)用法
`rank() over(partition by ... order by ...)`是一种在SQL中用于计算排名的函数。其中`partition by`用于指定分组的字段,`order by`用于指定排序的字段。该函数会根据指定的字段进行分组,并按照指定的字段进行排序,然后为每个分组中的行分配一个排名。如果有并列的情况,则会跳过相应的排名,下一个排名会加上并列的数量。
以下是一个示例,假设有一个名为`students`的表,其中包含学生的姓名、班级和成绩三个字段。我们可以使用`rank() over(partition by class order by score desc)`来计算每个班级中学生成绩的排名:
```sql
SELECT name, class, score, rank() over(partition by class order by score desc) as rank
FROM students;
```
上述SQL语句将返回一个包含每个学生姓名、班级、成绩和排名的结果集。
阅读全文