row_number() over(partition by A, B, C order by D)用法
时间: 2023-10-13 09:18:04 浏览: 33
`ROW_NUMBER() OVER (PARTITION BY A, B, C ORDER BY D)` 是一个在 SQL 中用来生成行号的函数,它可以将查询结果分组并按照指定的列进行排序,然后为每一行分配一个唯一的行号。具体来说,它的用法如下:
- `PARTITION BY`:用来指定分组的列,即在哪些列上进行分组;
- `ORDER BY`:用来指定排序的列,即按照哪些列进行排序;
- `ROW_NUMBER()`:生成行号的函数,它会为每个分组中的行分配一个唯一的行号。
例如,下面的 SQL 语句会根据 `department` 和 `salary` 两个列进行分组,并按照 `salary` 列进行排序,然后为每一行分配一个唯一的行号:
```
SELECT
department,
employee_name,
salary,
ROW_NUMBER() OVER (PARTITION BY department, salary ORDER BY salary DESC) AS row_num
FROM
employee_table;
```
在上面的语句中,`PARTITION BY department, salary` 表示先按照 `department` 和 `salary` 两个列进行分组,然后按照 `salary` 列进行排序;`ROW_NUMBER() OVER (PARTITION BY department, salary ORDER BY salary DESC)` 则表示为每个分组中的行分配一个唯一的行号,并且按照 `salary` 降序排列。最终的查询结果会包含 `department`、`employee_name`、`salary` 和 `row_num` 四个列,其中 `row_num` 表示每个分组中的行号。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)