Oracle数据库中的ROW_NUMBER()
函数是一个窗口函数,它为查询结果集中的每一行分配一个唯一的序号。这个函数在数据分析、分页查询、数据去重和排名问题等方面非常有用。ROW_NUMBER()
函数的语法如下:
ROW_NUMBER() OVER ( [ PARTITION BY column ] ORDER BY column [ ASC | DESC ] )
参数说明:
PARTITION BY column
:可选参数,用于将结果集分为多个分区(组),每个分区内部单独排序和编号。ORDER BY column [ ASC | DESC ]
:必需参数,用于指定分配行号时的排序顺序。ASC
表示升序,DESC
表示降序。
用法示例:
假设我们有一个名为employees
的表,其中包含员工的姓名、部门和薪资信息。我们想要为每个部门的员工按薪资排序并分配一个序号。
SELECT
department_id,
employee_name,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
F