2016-10-28 2 views
0

내 초기 테이블은 내가 다음과 같은 결과 테이블을 필요로이Teradata. 그룹 내의 모든 값을 합산하는 방법?

id value 
1 20 
1 50 
1 30 
2 60 
2 5 
2 35 

과 같은

id value cum   | (this is explanation not a field) 
_ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ 
1 20  20   | (0 + 20 = 20) 
1 30  50   | (30 + 20 = 50) 
1 50  100   | (50 + 50 = 100) 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ 
2 5  5   | (0 + 5 = 5) 
2 35  40   | (5 + 35 = 40) 
2 60  100   | (40 + 60 = 100) 

논리는

1) ORDER 원래 테이블 BY value ASC

2) SUM 최대 이전 누적 값은 누적 값가됩니다.필드. 따라서 열은 현재 value보다 작은 valueSUM입니다.

난 단지 저장 프로 시저 내가이 작업을 수행 할 수있는 방법

없이 SQL로이 작업을 수행 할 필요가

? rows unbounded preceding and unbounded following에, range unbounded preceding의 표준 SQL의 기본과 다른 (A 그룹 합계)를, 그것 때문에 기본값을

sum(value) 
over (partition by id 
     order by values 
     rows unbounded preceding) 

rows unbounded preceding는 테라 데이타 필요하다 :

답변

1

글쎄, 당신은 누적 합계를 설명합니다.

+0

'SEL "ID", "값", SUM이 모두 제공 1,2' BY myTab FROM \t이 \t GROUP ("값"BY "ID"ORDER BY PARTITION) OVER ("값")'100' – john

+0

제대로하고 있습니까? – john

+0

죄송합니다. '행 바운드 선행'부분을 잊어 버렸습니다. – dnoeth

관련 문제