NTILE 분석 함수 - NTILE()의 괄호 안에는 나누고 싶은 만큼의 데이터 등급 개수를 적어주고, OVER 다음에 나오는 괄호 안에 등급을 나누고 싶은 조건을 넣으면 등급별로 출력됨 - 전체 행 데이터 수를 그룹으로 나누었을 때 나머지가 존재하면 첫 번째 그룹부터 나머지가 안남을 때까지 1씩 부여 : 전체 14건을 3그룹으로 나눌때 그룹당4개씩이고 나머지가 2이므로 그룹1=4+1, 그룹2=4+1, 그룹3=4 이렇게 만들어짐 |
NTILE 사용 문법
SELECT NTILE({그룹수}) OVER (PARTITION BY {컬럼명} ORDER BY {컬럼명})
EMP 테이블 데이터
전체 데이터를 SAL 역순으로 정렬하여 3등급으로 나눈다
PARTITION BY 구문이 없기 때문에 전체 데이터를 대상으로 등급을 나눈다
SELECT EMPNO, ENAME, SAL, NTILE(3) OVER (ORDER BY SAL DESC) AS GRP_NO
FROM EMP
;
전체 데이터를 DEPTNO별 SAL 역순으로 정렬하여 2등급으로 나눈다
PARTITION BY DEPTNO 구문이 있으므로 DEPTNO별로 그룹을 나눈 후 해당 그룹내에서 등급을 나눈다
SELECT EMPNO, ENAME, DEPTNO, SAL, NTILE(2) OVER (PARTITION BY DEPTNO ORDER BY SAL DESC) AS GRP_NO
FROM EMP
;
'DBMS > ORACLE' 카테고리의 다른 글
ASM DISK 추가/일시중지/재개 시 상태 변화 (0) | 2023.10.26 |
---|---|
ASM DISK 추가/삭제 성능 테스트(신규추가, 기존삭제) (0) | 2023.10.26 |
오라클 START WITH ... CONNECT BY(계층쿼리) 사용법 (0) | 2023.09.15 |
오라클 EMP, DEPT 샘플 테이블 생성 스크립트 (0) | 2023.09.15 |
오라클 null 처리 함수(nvl, nvl2, nullif, coalesce) (0) | 2023.09.09 |
댓글