더북(TheBook)

코드 11-13은 emp_hierarchy 테이블을 조회하는데, SELECT 절 마지막에 ROW_NUMBER() 함수를 사용합니다. PARTITION BY dept_name은 부서별로 파티션을 지정한다는 뜻이고, ORDER BY salary DESC는 급여가 많은 순서대로 정렬한다는 뜻입니다. 즉, 부서별로 급여가 많은 순서대로 순번을 매긴다는 뜻입니다.

결과를 보면 Executive 부서에는 총 3명이 속해 있는데 seq 칼럼 값을 보면 salary 값이 큰 순서대로 1부터 3까지 순번이 매겨졌고, Finance 부서 역시 급여가 많은 순서대로 1부터 6까지 순번이 매겨졌습니다.

정리하면 ROW_NUMBER() 함수는 로우의 순번을 반환하고, 어떻게 순번을 계산하는지는 PARTITION BYORDER BY 뒤에 명시하는 칼럼(표현식)에 따라 달라집니다. 그리고 PARTITION BY는 파티션(대상 범위)을, ORDER BY는 순서를 지정합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.