오라클의 분석함수
자바가 가진 자료타입의 속성을 탐색하는 클래스를 활용하자.
참조형 클래스의 맴버를 리턴받고 설정할수있는 어노테이션을 살펴보자
사용자 어노테이션을 만들어 보고 적용할 수 있다.
Query 속도의 향상, SelfJoin, 절차적 로직으로 표현한 것을 sql에서 바로 적용할 수 있도록 하여 join이나 over head를 줄인다
향상된 개발 생산력이 간결한 sql로 복잡한 분석작업을 수행 가능하게 하며 유지 보수가 간편하다
이해 및 활용이 용이 하고 기존 sql syntax를 그대로 적용한다.
RANK FAMILY
- 대상집합에 대해서 ㅌ특정 컬럼을 기준으로 순위나 등급을 부여한다.
오름차순,내림차순 등급을 부여 하고 NULL은 순위의 가자아 처음 또는 마지막으로 강제 처리된다.
파티션마다 초기화 되며 순위, 등급은 GROUP BY, CUBE, ROLLUP 시 초기화 된다.
RANK(),DENSE_RANK()
CUME_DIST()누적 분산 정보
- PARTITION BY 절로 나누어진 그룹별로 각 ROW를 ORDER BY순으로 정렬 한 후 그룹별로 상대적 위치를 구한다.
상대적 위치는 구하고자 하는 값보다 작거나 같은 값을 가진 ROW 수를 그룹내에 전체 ROW수로 나눈 것을 의미하며 결과값의 범위는 0보다 크고 1보다는 작거나 같다.
NTILE()
- PARTITION BY 대신 BUCKET 이라는 단어로 ()안에 매개변수를 나눈다.
NTILE(4)를 사용하면 ROW 100개가 있다면 25개씩 나눈다.
ROW_NUMBER()
RATIO_TO_REPORT(컬럼)
해당 구간에서 차지하는 비율을 리턴하는 함수
LAG/LEAD
특정 로우가 속한 파티션내에서 상대적 상하 위치에 있는 특정 로우의 컬럼값을 참조하거나 상호 비교 할 대 사용하는 함수.
파티션 내에서 참조할 로우가 없으면 지정한 값 (DEFALUT = NULL)로 출력된다.
Reflect
java.lang.Class의 멤버 리턴값이 java.lang.reflect의 클래스로 연동된다.