开窗函数row_number()over (partition by full_name order by sr_type_id desc ) as rn
时间: 2023-11-21 11:57:56 浏览: 86
oracle分析函数row_number() over()使用
4星 · 用户满意度95%
`row_number() over (partition by full_name order by sr_type_id desc) as rn`是一种使用开窗函数的SQL查询语句,它可以根据指定的列对结果进行分组,并按照指定的列进行排序。其中,`row_number()`函数会为每个分组中的行分配一个唯一的行号,这个行号是根据指定的排序顺序来确定的。`partition by`子句用于指定分组的列,`order by`子句用于指定排序的列和排序顺序。
例如,假设我们有一个名为`employees`的表,其中包含员工的姓名(`full_name`)和薪水等级(`sr_type_id`)两列。我们可以使用以下查询语句来获取每个员工的薪水等级排名:
```sql
SELECT full_name, sr_type_id,
row_number() over (partition by full_name order by sr_type_id desc) as rn
FROM employees;
```
这个查询语句会将`employees`表中的所有行按照`full_name`列进行分组,并按照`sr_type_id`列进行降序排序。然后,`row_number()`函数会为每个分组中的行分配一个唯一的行号,这个行号是根据`sr_type_id`列的降序排列来确定的。最后,查询结果会包含每个员工的姓名、薪水等级和排名。
阅读全文