[SQL] 043. 데이터 분석 함수로 등급 출력하기

Updated:

초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.

오라클 SQL을 기반으로 합니다.

실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.


[예시]

NTILE() OVER로 데이터의 등급을 출력 가능하다.

OVER 다음에 등급을 매길 열과 정렬 기준을 입력한다.

여기선 SAL(월급)이 높은 순으로 1등급(0~20%), 2등급(20~40%) 등으로 5등급으로 나눠 출력한다.

-- NTILE(나눌등급수) OVER (ORDER BY 기준)
SELECT ENAME, JOB, SAL,
       NTILE(5) OVER (ORDER BY SAL DESC) AS 등급
FROM EMP;

[결과]

ENAME JOB SAL 등급
KING PRESIDENT 5000 1
SCOTT ANALYST 3000 1
FORD ANALYST 3000 1
JONES MANAGER 2975 2
BLAKE MANAGER 2850 2
CLARK MANAGER 2450 2
ALLEN SALESMAN 1600 3
TURNER SALESMAN 1500 3
MILLER CLERK 1300 3
WARD SALESMAN 1250 4
MARTIN SALESMAN 1250 4
ADAMS CLERK 1100 4
JAMES CLERK 950 5
SMITH CLERK 800 5

[예시2]

NULLS LAST는 NULL 값이 마지막에 출력되게 한다.

해당 함수를 사용 하지 않으면 NULL이 먼저 출력된다.

등급 자체는 NULL이 있어도 나누게 된다.

-- NULL 값이 있는 경우
-- NULLS LAST: NULL값을 마지막으로 출력
SELECT ENAME, JOB, COMM,
       NTILE(5) OVER (ORDER BY COMM DESC NULLS LAST) AS 등급
FROM EMP;

[결과2]

ENAME JOB COMM 등급
MARTIN SALESMAN 1400 1
WARD SALESMAN 500 1
ALLEN SALESMAN 300 1
TURNER SALESMAN 0 2
CLARK MANAGER   2
BLAKE MANAGER   2
MILLER CLERK   3
JAMES CLERK   3
JONES MANAGER   3
FORD ANALYST   4
SMITH CLERK   4
SCOTT ANALYST   4
ADAMS CLERK   5
KING PRESIDENT   5

Tags:

Categories:

Updated:

Leave a comment