Blog Archive

Sunday, 28 April 2013

Teradata Cumulative SUM using SUM WINDOW function


SUM window Cumulative Function:

SUM window function allows cumulative aggregate to be calculated.
Teradata equivalent is CSUM function.

To get cumulative SUM we use UNBOUNDED PRECEDING as follows:

SELECT        EMPLOYEEID,DEPARTMENTNO,SALARY,
SUM(SALARY) OVER ( 

ORDER        BY DEPARTMENTNO ROWS  UNBOUNDED PRECEDING
 )
FROM        EMPLOYEE2;

Employeeid
DepartmentNo
Salary
Cumulative Sum(Salary)
5
100
5000
5000
9
100
9000
14000
1
100
1000
15000
6
200
6000
21000
124
200
12345.11
33345.11
10
200
10000
43345.11
2
200
2000
45345.11
11
300
11000
56345.11
7
300
7000
63345.11
3
300
3000
66345.11
12
400
12000
78345.11
4
400
4000
82345.11
8
400
8000
90345.11
144
400
12345.11
102690.2

Cumulative Sum is nothing but sequential aggregation .

Note that the Column title indicates that its 'Cumulative SUM'

We can reset the cumulative SUM by making use of PARTITION BY clause as follows:

SELECT        EMPLOYEEID,DEPARTMENTNO,SALARY,
SUM(SALARY) OVER ( 
PARTITION BY DEPARTMENTNO
ORDER        BY DEPARTMENTNO ROWS  UNBOUNDED PRECEDING
 )
FROM        EMPLOYEE2;

Employeeid
DepartmentNo
Salary
Cumulative Sum(Salary)
1
100
1000
1000
5
100
5000
6000
9
100
9000
15000
124
200
12345.11
12345.11
10
200
10000
22345.11
6
200
6000
28345.11
2
200
2000
30345.11
7
300
7000
7000
3
300
3000
10000
11
300
11000
21000
4
400
4000
4000
12
400
12000
16000
8
400
8000
24000
144
400
12345.11
36345.11

No comments:

Post a Comment