IT 기술/Oracle
DW 구축시에 쓸만한 Oracle Analytic function과 [오라클 실전 튜닝]책 소개
ㅇㅔ ㄷㅡ
2008. 6. 26. 03:16
정보문화사에서 출판된 "Perfect! 오라클 실전 튜닝"이라는 책의 16장에 소개된 내용이며, 오라클 DW Guide문서에도 소개된 내용입니다. 물론 DW Guide는 영문입니다. 그래서 "Perfect! 오라클 실전 튜닝"을 구매하려 했으나 절판되었네요. 아직까지 재고가 있는 곳이 있는지 알아봐야 겠습니다.
Analytic Function
Analytic Function은 오라클 8i 버전부터 본격적으로 제공되었다.
특징
- 주기적인 데이터 분석 작업에 이용
- SQL 양의 감소로 인한 운영의 용이
- 성능 향상
- Group By 사용 감소
SQL> SELECT DEPTNO, 이름, SAL COUNT(DEPTNO) OVER (PARTITION BY DEPTNO ORDER BY SAL) FROM 사원;
10 김희진 250 3
10 선애란 300 3
Syntax ~ 함수명 OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명) 함수
LAG(컬럼명, 숫자, NULL일때 값) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
LAG(컬럼명, 숫자) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
숫자에 해당하는 만큼 이전 ROW의 값
10 김희진 250
20 선애란 300 250
30 홍길동 400 300
LEAD(컬럼명, 숫자) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
해당하는 값 만큼 다음 ROW의 값을 가져온다.
10 김희진 250 300
20 선애란 300 500
30 홍길동 500 400
40 이산 400 340
AVG COUNT MIN MAX RANK FIRST_VALUE LAST_VALUE ROW_NUMBER ~ ROW_NUMBER() OVER(PARTITION BY 컬럼명 ORDER BY 컬럼명)
Analytic Function
Analytic Function은 오라클 8i 버전부터 본격적으로 제공되었다.
특징
- 주기적인 데이터 분석 작업에 이용
- SQL 양의 감소로 인한 운영의 용이
- 성능 향상
- Group By 사용 감소
SQL> SELECT DEPTNO, 이름, SAL COUNT(DEPTNO) OVER (PARTITION BY DEPTNO ORDER BY SAL) FROM 사원;
10 김희진 250 3
10 선애란 300 3
Syntax ~ 함수명 OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명) 함수
LAG(컬럼명, 숫자, NULL일때 값) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
LAG(컬럼명, 숫자) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
숫자에 해당하는 만큼 이전 ROW의 값
10 김희진 250
20 선애란 300 250
30 홍길동 400 300
LEAD(컬럼명, 숫자) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
해당하는 값 만큼 다음 ROW의 값을 가져온다.
10 김희진 250 300
20 선애란 300 500
30 홍길동 500 400
40 이산 400 340
AVG COUNT MIN MAX RANK FIRST_VALUE LAST_VALUE ROW_NUMBER ~ ROW_NUMBER() OVER(PARTITION BY 컬럼명 ORDER BY 컬럼명)