[SQL] 055. 데이터 분석 함수로 출력 결과 넘버링 하기

Updated:

초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.

오라클 SQL을 기반으로 합니다.

실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.


[예시]

ROW_NUMBER() OVER는 출력되는 순서로 넘버링을 하는 함수이다.

다음 예시는 ENAME(사원이름) 순서로 넘버링을 진행한다.

SELECT ENAME, SAL, ROW_NUMBER() OVER (ORDER BY ENAME) AS OBS_NUMBER
FROM EMP;

[결과]

ENAME SAL OBS_NUMBER
ADAMS 1100 1
ALLEN 1600 2
BLAKE 2850 3
CLARK 2450 4
FORD 3000 5
JAMES 950 6
JONES 2975 7
KING 5000 8
MARTIN 1250 9
MILLER 1300 10
SCOTT 3000 11
SMITH 800 12
TURNER 1500 13
WARD 1250 14

[예시2]

ROW_NUMBER() OVERPARTITION BY로 그룹별로 넘버링이 가능하다.

-- 부서번호별 이름별로 넘버링
SELECT DEPTNO, ENAME, 
       ROW_NUMBER() OVER (PARTITION BY DEPTNO ORDER BY ENAME) AS OBS_NUMBER
FROM EMP;

[결과2]

DEPTNO ENAME OBS_NUMBER
10 CLARK 1
10 KING 2
10 MILLER 3
20 ADAMS 1
20 FORD 2
20 JONES 3
20 SCOTT 4
20 SMITH 5
30 ALLEN 1
30 BLAKE 2
30 JAMES 3
30 MARTIN 4
30 TURNER 5
30 WARD 6

Tags:

Categories:

Updated:

Leave a comment