SUM Window moving function:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Moving
Window function allow aggregation over a defined window.
SELECT EMPLOYEEID,DEPARTMENTNO,SALARY,
SUM(SALARY) OVER (
ORDER BY
DEPARTMENTNO ROWS 2 PRECEDING
)
FROM EMPLOYEE2;
Note that for moving sum we don’t use the word unbounded, instead we specify the width explicitly as shown above.
In
the above example we specify 'ROWS 2 PRECEDING' to achieve a window of 3.
Note
that column title is Moving Sum.
We can produce the same result using the following
query. This is same as the query shown above:
SELECT EMPLOYEEID,DEPARTMENTNO,SALARY,
SUM(SALARY) OVER (
ORDER BY
DEPARTMENTNO ROWS BETWEEN 2
PRECEDING AND CURRENT ROW
)
FROM EMPLOYEE2;
Thus
we know that 'ROWS 2 PRECEDING' actually means 'ROWS BETWEEN 2 PRECEDING and
CURRENT ROW'.
That’s
the reason why to achieve a window of 3 we write 'ROWS 2 PRECEDING' as
CURRENT ROW is included by default.
We
can also use PARTITION BY clause to perform grouping as shown below:
SELECT EMPLOYEEID,DEPARTMENTNO,SALARY,
SUM(SALARY) OVER (
PARTITION BY
DEPARTMENTNO
ORDER BY
DEPARTMENTNO ROWS BETWEEN 2
PRECEDING AND CURRENT ROW
)
FROM EMPLOYEE2;
|
Pages
▼
No comments:
Post a Comment