次の例では、開始日付別に給与、移動平均(ma)、および移動平均グループの最初と最後の給与を返しています。
この関数は、ウィンドウの最初と最後の値を返します。例では、最初と最後の行がウィンドウ内に収まっています。ウィンドウが3行前と2行前の間にあった場合には、先頭2つの行の最初の値にNULLが表示されます。
SELECT start_date, salary, AVG(salary) OVER(ORDER BY start_date ROWS BETWEEN 3 PRECEDING AND 1 FOLLOWING) ma, FIRST_VALUE(salary) OVER(ORDER BY start_date ROWS BETWEEN 3 PRECEDING AND 1 FOLLOWING) first, LAST_VALUE(salary) OVER(ORDER BY start_date ROWS BETWEEN 3 PRECEDING AND 1 FOLLOWING) last FROM employee ORDER BY start_date;
start_date | salary | ma | first | last |
---|---|---|---|---|
21-MAR-76 | 6661.78 | 6603.280 | 6661.78 | 6544.78 |
12-DEC-78 | 6544.78 | 5183.780 | 6661.78 | 2344.78 |
24-OCT-82 | 2344.78 | 4471.530 | 6661.78 | 2344.78 |
15-JAN-84 | 2334.78 | 4441.780 | 6661.78 | 4322.78 |
30-JUL-87 | 4322.980 | 4688.980 | 6544.78 | 7897.78 |
31-DEC-90 | 7897.78 | 3626.936 | 2344.78 | 1234.56 |
25-JUL-96 | 1234.56 | 3404.536 | 2334.78 | 1232.78 |
17-SEP-96 | 1232.78 | 3671.975 | 4322.78 | 1232.78 |