定义
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
加上函数
SELECT ID,NAME,DATE1,ROW_NUMBER() OVER(partition by ID order by DATE1 desc) as RN FROM test