코드 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 BY와 ORDER BY 뒤에 명시하는 칼럼(표현식)에 따라 달라집니다. 그리고 PARTITION BY는 파티션(대상 범위)을, ORDER BY는 순서를 지정합니다.