단일 테이블인 경우에는 아래와 같이 서브쿼리를 사용하여 누적합계를 구할 수 있다.
SELECT CODE,
UPPER_CODE,
CNT,
(SELECT SUM(CNT)
FROM TABLE1 I
START WITH I.CODE = T.CODE
CONNECT BY PRIOR CODE = UPPER_CODE)SUM
FROM TABLE1 T
START WITH UPPER_CODE = 'ROOT'
CONNECT BY PRIOR CODE = UPPER_CODE
하지만 나의 경우 계층 구조로 되어 있는 카테고리 테이블과 각 카테고리별 데이터가 저장되는 테이블이 따로 존재해서 다른 방법을 찾아야 했다.
구글링하여 찾은 결과..
WITH 절을 사용하여 임시테이블로 만들면 가능했다.
WITH GROUPED (CODE, UPPER_CODE, CNT)
AS
(
SELECT CODE,
UPPER_CODE,
(SELECT COUNT(CODE) FROM TABLE2 I WHERE CODE = T.CODE)
FROM TABLE1 T
)
SELECT CODE,
UPPER_CODE,
CNT,
(
SELECT SUM(CNT) FROM GROUPED I
START WITH I.CODE = G.CODE
CONNECT BY PRIOR CODE = UPPER_CODE
)SUM
FROM GROUPED G
START WITH UPPER_CODE = 'ROOT'
CONNECT BY PRIOR CODE = UPPER_CODE
출처
How to get cumulative sum of values in each level of Oracle hierarchical query?
This question is in continuation to my previous question on hierarchical query, where Im looking for cumulative sum of values at each level of the hierarchy. For a schema like the following: drop t...
stackoverflow.com