데이터 분석함수는 그룹함수가 아닌 별도의 함수이다.
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;
'Oracle > SQL' 카테고리의 다른 글
SQL 데이터 분석함수 - 데이터 가로출력 Listagg (컬럼명,',') within group(order by~ desc/asc ) (0) | 2021.11.19 |
---|---|
SQL 데이터 분석함수 - 상위비율구하기 Cume_dist () over ( partition by ~ order by ~ desc/asc) (0) | 2021.11.19 |
SQL 데이터 분석함수 - 순위출력 Rank () over ( partition by /order by ~ desc/asc), Dense_Rank () (0) | 2021.11.19 |
SQL 다중행 함수 - 그룹함수 (Count) 건수 (0) | 2021.11.19 |
SQL 다중행 함수 - 그룹함수 (SUM) 토탈값 (0) | 2021.11.19 |