Oracle SQL语句 之 组合分析函数

定义

row_number() over() 为组合分析函数,主要用于单次查询中既涉及分组又涉及排序的需求

语法

row_number() over(partition by col1 order by col2[desc/asc]),其中:
1、partition by 是用来分组的,用了这个就可以实现在组内进行排序;
2、order by是用来确定排序的基准的,可使输出结果按col2列来进行升序或降序的排序;
3、最左侧的row_number() 是用来对col1组内的查询结果,按照col2的排序进行编号。

返回值类型

可以为字符型、日期型、日期时间型、数值型、货币型、逻辑型或null值。

举例

未加函数

select ID,name,date1 from test

file

加上函数

SELECT ID,NAME,DATE1,ROW_NUMBER() OVER(partition by ID order by DATE1 desc) as RN FROM test

file

Related Posts