[SQL] 041. 데이터 분석 함수로 순위 출력하기
Updated:
초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.
오라클 SQL을 기반으로 합니다.
실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.
[예시]
RANK() OVER로 데이터의 순위를 출력 가능하다.
OVER 다음에 순위를 매길 열과 정렬 기준을 입력한다.
-- 월급 순위
SELECT ENAME, JOB, SAL,
RANK() OVER (ORDER BY SAL DESC) AS 순위
FROM EMP
WHERE JOB IN ('ANALYST', 'MANAGER');
[결과]
SAL(월급)이 높은 순으로 순위와 함께 출력되었다.
| ENAME | JOB | SAL | 순위 |
|---|---|---|---|
| FORD | ANALYST | 3000 | 1 |
| SCOTT | ANALYST | 3000 | 1 |
| JONES | MANAGER | 2975 | 3 |
| BLAKE | MANAGER | 2850 | 4 |
| CLARK | MANAGER | 2450 | 5 |
[예시2]
OVER 다음에 PARTITION BY를 사용하면 그룹별로 순위를 매길 수 있다.
여기선 JOB(직업)별로 SAL(월급)이 높은 순으로 출력한다.
-- 직업별 월급 순위
SELECT ENAME, SAL, JOB,
RANK() OVER (PARTITION BY JOB ORDER BY SAL DESC) AS 순위
FROM EMP
WHERE JOB IN ('ANALYST', 'MANAGER');
[결과2]
| ENAME | SAL | JOB | 순위 |
|---|---|---|---|
| FORD | 3000 | ANALYST | 1 |
| SCOTT | 3000 | ANALYST | 1 |
| JONES | 2975 | MANAGER | 1 |
| BLAKE | 2850 | MANAGER | 2 |
| CLARK | 2450 | MANAGER | 3 |
Leave a comment