본문 바로가기

Oracle/SQL

SQL 데이터 분석함수 - 등급 출력 Ntile( 숫자) over( order by ~ desc/asc )

데이터 분석함수는 그룹함수가 아닌 별도의 함수이다.

NTILE(등급 출력하기)

→ ntile ( 원하는 등급 갯수) over ( order by 컬럼 desc / asc) as 등급 

예제 : 직업이 'ANALYST, MANAGER, CLERK 인 사원들의 이름과 직업과 월급과 등급을 출력하는데 등급을 4등급으로 나눠서 출력하세요

select ename, job, sal, ntile(4) over( order by sal desc) 등급 
from emp
where job in ('ANALYST','MANAGER','CLERK');

0<~ ≤25% : 1등급

25<~≤50: 2 등급

50<~≤75: 3등급 

75<~≤100:4등급

문제 177 : 이름, 입사일, 입사한 사원순으로 등급을 5등급으로 나눠서 출력, 부서번호별로 각각 입사한 날짜 순으로 등급을 부여하시오

select deptno, ename, hiredate,
       ntile(5) over ( partition by deptno 
                       order by hiredate asc) as 등급
from emp;

문제 178 : 클래스타입, 이름,나이,등급, 출력 클래스 타입별로 각각 나이가 높은 순서대로 등급을 3등급을 부여하시오

select class_type, ename, age, 
       ntile(3) over ( partition by class_type
                       order by age desc ) as 등급 
from emp14;