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;
|
Blog Archive
-
►
2012
(22)
- ► January 2012 (21)
- ► February 2012 (1)
-
▼
2013
(119)
- ► February 2013 (2)
- ► March 2013 (28)
- ► April 2013 (48)
- ► September 2013 (16)
- ► October 2013 (3)
-
▼
November 2013
(13)
- 7.1 Teradata Parallel Transporter Export Operator ...
- 7.2 Teradata Parallel Transporter - Export Operato...
- 7.3 Teradata Parallel Transporter - Export Operato...
- 8.1 Teradata Parallel Transporter - SQL selector O...
- 8.2 Teradata Parallel Transporter - SQL selector -...
- 8.3 Teradata Parallel Transporter - SQL selector o...
- 9.1 Teradata Parallel Transporter - Load Operator ...
- 9.2 Teradata Parallel Transporter - Load Operator ...
- 9.3 Teradata Parallel Transporter - Load Operator ...
- 10.1 Teradata Parallel Transporter - SQL inserter ...
- 10.2 Teradata Parallel Transporter - SQL inserter ...
- 11.1 Teradata Parallel Transporter - Stream Operat...
- 11.2 Teradata Parallel Transporter - Stream Operat...
Showing posts with label Teradata Moving SUM function. Show all posts
Showing posts with label Teradata Moving SUM function. Show all posts
Monday, 29 April 2013
Teradata Moving SUM using SUM window Function - ROWS N PRECEDING
Sunday, 21 April 2013
ANSI and Teradata Function Equivalents - Part 4 - Moving SUM(MSUM) and MSUM with Grouping
Function : MOVING SUM
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Teradata Syntax:
Following
is the Teradata syntax for getting
Moving Sum.
In
the following syntax the we get moving sum with a window of 3
SELECT
EMPLOYEEID,HIREDATE,SALARY,
MSUM(SALARY,3,HIREDATE)
FROM
EMPLOYEE;
In
the above result we can see that the value of moving sum is equal to the sum
of the salary in the current row and 2 rows above it.
In
the above
We
can perform resets by making use of 'GROUP BY' as shown below
SELECT
EMPLOYEEID,HIREDATE,SALARY,
MSUM(SALARY,5,HIREDATE)
FROM
EMPLOYEE
GROUP BY DEPARTMENTNO;
The
column used in the 'GROUP BY' also acts as the major sort sequence and the
moving sum is reset when the value of department changes.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ANSI syntax:
Following is the way we get the same result as above using the ANSI syntax
SELECT
EMPLOYEEID,HIREDATE,SALARY,
SUM(SALARY) OVER (ORDER BY HIREDATE ROWS 2
PRECEDING)
FROM
EMPLOYEE;
In
the above syntax:
Note that this number indicates the number of rows above the
current row.
Thus in the above example to have a window of 3 , we need to
use 'ROWS 2 PRECEDING'.
However when working with MSUM we need to write the 3 to
achieve a window width of 3.
We
can perform resets by making use of 'PARTITION BY' as shown below
SELECT
EMPLOYEEID,HIREDATE,SALARY,
SUM(SALARY) OVER (PARTITION BY DEPARTMENTNO ORDER BY
HIREDATE ROWS 2 PRECEDING)
FROM
EMPLOYEE;
The
column used in the 'PARTITION BY ' also acts as the major sort sequence and
the moving sum is reset when the value of department changes.
|
Subscribe to:
Posts (Atom)