Oracle/SQL
SQL 데이터 분석함수 - 등급 출력 Ntile( 숫자) over( order by ~ desc/asc )
NO:LOO
2021. 11. 19. 17:41
데이터 분석함수는 그룹함수가 아닌 별도의 함수이다.
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;