FIRST_VALUE / LAST-VALUE:-
========================
这些合计函数可以与窗口函数一起使用,以标识窗口中第一个和最后一个值的值。
示例ex#1
---------------------
SELECT HIREDATE,FIRST_VALUE(SUM(SAL))OVER (ORDER BY HIREDATE ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING) PREVOUS,
SUM(SAL) MONTHLYSAL,
LAST_VALUE(SUM(SAL)) OVER (ORDER BY HIREDATE ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING) NEXT,
AVG(SUM(SAL)) OVER (ORDER BY HIREDATE ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING) ROLLING
FROM EMP
GROUP BY HIREDATE
ORDER BY HIREDATE;
延迟/领先:-
==============
这些功能允许行相对于当前行的位置引用行。它们可用于将一个结果集的一行与同一结果集的另一行进行补偿。
示例1
-----------------------
SELECT HIREDATE,SUM(SAL) MONTHLYSAL,LAG(SUM(SAL),1) OVER( ORDER BY HIREDATE) PREVIOUS_MONTH_SAL
FROM EMP GROUP BY HIREDATE ORDER BY HIREDATE;
示例2
-----------------------
SELECT HIREDATE,SUM(SAL) MONTHLYSAL,
LAG(SUM(SAl),1) OVER( ORDER BY HIREDATE) PREVIOUS_MONTH_SAL,
LEAD(SUM(SAl),1) OVER( ORDER BY HIREDATE) NEXT_MONTH_SAL
FROM EMP GROUP BY HIREDATE ORDER BY HIREDATE;
From: https://bytes.com/topic/oracle/insights/672445-windowing-function-2-a