티스토리 뷰

ROWNUM

조회한 결과에 순위 매기기

 

예제로 이해하기

 

 

EMP 테이블에서 3번째로 월급이 높은 사원의 이름과 월급을 출력하고 싶다.

 

1. 먼저 월급이 높은 순서대로(내림차순) 정렬해보기

SELECT ENAME, SAL
FROM EMP
ORDER BY SAL DESC;

 

 

 

2. ROWNUM을 사용해서 출력해보기 (ORDER BY절을 사용했기 때문에 ROWNUM은 뒤섞여 나오게 됩니다.)

SELECT ROWNUM, ENAME, SAL
FROM EMP
ORDER BY SAL DESC;

 

 

 

3. 따라서, 1번의 쿼리를 가상테이블로 만들어 ROWNUM을 새로 부여해줍니다.

    ROWNUM이 월급이 높은 순서대로 잘 주어졌습니다.

SELECT ROWNUM, A.ENAME, A.SAL
FROM (SELECT ENAME, SAL
	FROM EMP
	ORDER BY SAL DESC) A;

 

 

 

4. 월급이 3번째로 높은 사원을 구하기 위해 3번의 쿼리를 가상테이블로 만들어줍니다.

    WHERE절을 이용해 ROWNUM이 3인 값을 구합니다.

SELECT *
FROM (SELECT ROWNUM R, A.ENAME, A.SAL
	FROM (SELECT ENAME, SAL
		FROM EMP
		ORDER BY SAL DESC) A) B
WHERE B.R = 3;

 

원하는 값이 잘 구해졌어요!

 

 

최근에 올라온 글
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Total
Today
Yesterday