[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

Tags:

Categories:

Updated:

Leave a comment