티스토리 뷰
1. 분석함수 - 역할
◈ 역할
데이터를 분석하는 기능을 하는 함수
◈ 구문형식
분석함수(컬럼1,컬럼2...) OVER ( PARTITION BY .... ORDER BY ... WINDOWING ...)
분석함수 종류
AVG |
CORR |
COVAR_POP |
COUNT |
CUM_DIST |
DENSE_RANK |
FIRST | LAST | FIRST_VAEUE | LAG | LAST_VALUE | LEAD |
MAX | MIN | NTILE | PERCENT_RANK | PERCENTILE_CONT | PERCENTILEDISC |
RANK | RATIO_TO_REPORT | SUM |
PARTITION BY 절 - 분석 함수의 계산대상 그룹 지정
ORDER BY 절 - 계산 대상 그룹에 대해 정렬작업 수행
WINDOWING 절 - 분석 함수 대상이 되는 기준을 좀 더 세부적으로 정의
2. 분석함수 - 기본 테이블
◈ TEST_TABLE_ONE
IDX | NAME | ID | DEPT | AMT |
1 | 테스트1 | test1 | test_d1 | 1000 |
2 | 테스트2 | test2 | test_d1 | 1000 |
3 | 테스트3 | test3 | test_d2 | 2000 |
4 | 테스트4 | test4 | test_d2 | 2000 |
5 | 테스트5 | test5 | test_d2 | 5000 |
3. 분석함수 - SQL 문장
1 2 3 4 5 | SELECT DEPT ,NAME ,AMT ,SUM(amt) OVER (PARTITION BY DEPT ORDER BY NAME) AS STAT_SUM FROM TEST_TABLE_ONE |
◈ 결과 테이블
DEPT | NAME | AMT | STAT_SUM |
test_d1 | 테스트1 | 1000 | 1000 |
test_d1 | 테스트2 | 1000 | 2000 |
test_d2 | 테스트3 | 2000 | 2000 |
test_d2 | 테스트4 | 2000 | 4000 |
test_d2 | 테스트5 | 5000 | 9000 |
◈ 설명
위에서 본다면 현재 STAT_SUM 컬럼은 부서별로 소계 금액을 표시하고 있습니다
즉 테스트2에 해당하는 ROW 는 테스트1,테스트2의 금액 1000+1000 = 2000 에 해당하는 금액입니다
테스트4,테스트5도 마찬가지로 test_d2 부서에 해당하는 소계를 보여주고 있습니다
'[개발]프로그래밍 > sql' 카테고리의 다른 글
[oracle] ROW_NUMBER() - 순차적인 값 반환 (0) | 2016.10.27 |
---|---|
[oracle] RANK() , DENSE_RANK() - 순위 반환 (0) | 2016.10.27 |
[oracle] SYS_CONNECT_BY_PATH - 루트 찾아가기 (1) | 2016.10.26 |
[oracle] CONNECT_BY_ISLEAF - 자식 노드 찾기 (1) | 2016.10.26 |
[oracle] CONNECT_BY_ISCYCLE - 중복 참조 찾기 (0) | 2016.10.25 |
- Total
- Today
- Yesterday