투케이2K

34. (Oracle/오라클) RANGE와 ROWS를 사용해 그룹별 범위 합계 구하기 실시 본문

OracleDB

34. (Oracle/오라클) RANGE와 ROWS를 사용해 그룹별 범위 합계 구하기 실시

투케이2K 2021. 1. 17. 11:23

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Toad

개발 언어 : Oracle

/* =========================== */

/* =========================== */

[소스 코드]

 

/*
[RANGE와 ROWS를 사용해 그룹별 범위 합계 구하기 실시]
1. range - 그룹별 마지막합계를 보여줍니다
2. rows - 그룹별 순차적으로 합계를 보여줍니다
3. ex - range (36 값이 2개가 있는 경우 2개합계를 더한 값인 72를 표시해줍니다)
        rows (36 값이 2개가 있는 경우 순차적으로 36, 72 합계를 표시해줍니다)         
*/

/*[range 그룹별 합계 출력]*/
select T_NAME, T_AGE,
       sum(T_AGE) over (partition by T_AGE order by T_AGE desc
                        range between unbounded preceding and current row) as 그룹별합계
    from TEST_USER
where rownum <=10
    order by T_AGE DESC;

/*[rows 그룹별 합계 출력]*/
select T_NAME, T_AGE,
       sum(T_AGE) over (partition by T_AGE order by T_AGE desc
                        rows between unbounded preceding and current row) as 그룹별합계
    from TEST_USER
where rownum <=10
    order by T_AGE DESC;

/* =========================== */

[결과 출력]

[range 그룹별 합계 출력]

[rows 그룹별 합계 출력]

/* =========================== */

/* =========================== */

[요약 설명]

1. range - 그룹별 마지막합계를 보여줍니다

2. rows - 그룹별 순차적으로 합계를 보여줍니다

3. ex - range (36 값이 2개가 있는 경우 2개합계를 더한 값인 72를 표시해줍니다)

         rows (36 값이 2개가 있는 경우 순차적으로 36, 72 합계를 표시해줍니다)

/* =========================== */

반응형
Comments