语法:
function_name over( [ partition by [expr1][ ,... ] ] [order by [expr2][ ,... ] [ ASC | DESC ] [NULLS FIRST | LAST] ] )
功能:以一定的方法在一个与当前行相关的结果子集中进行计算。
function_name 是窗口函数支持的函数名称,目前支持的函数包括LAG、LEAD、NTILE、MAX、MIN、ROW_NUMBER、STDDEV、STDDEV_POP、STDDEV_SAMP、SUM、VARIANCE、VAR_POP、VAR_SAMP、AVG。
partition by表示分组,expr1是分组的列字段名称;order by表示排序,expr2 是排序的列字段名称。
若function_name 取值是ROW_NUMBER(),则partition by子句和order by子句不能缺省,其余函数可缺省。
--返回以staff_ID分组排序后的员工工资的大值。
select staff_ID, MAX(salary)over(partition by staff_ID order by staff_ID) from staffs;
STAFF_ID MAX(SALARY)OVER(PARTITION BY STAFF_ID ORDER BY STAFF_ID)
---------------------------------------- --------------------------------------------------------
198 2600
198 2600
198 2600
199 4000