본문 바로가기
DBMS/ORACLE

오라클 NTILE 함수 설명 및 사용법

by 드바 2023. 10. 3.

 

 

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 테이블 데이터

emp table

 

 

전체 데이터를 SAL 역순으로 정렬하여 3등급으로 나눈다

PARTITION BY 구문이 없기 때문에 전체 데이터를 대상으로 등급을 나눈다

SELECT EMPNO, ENAME, SAL, NTILE(3) OVER (ORDER BY SAL DESC) AS GRP_NO
FROM EMP
;

SAL 순서로 정렬
sal 순서로 정렬

 

 

전체 데이터를 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
;

deptno 별 sal 순서로 정렬
deptno별 sal 순서로 정렬

 

댓글