② NTH_VALUE (measure_expr, n)

    NTH_VALUE 함수는 주어진 그룹에서 n번째 로우에 해당하는 measure_expr 값을 반환한다. 30, 90번 부서별로 두 번째에 해당하는 급여를 뽑아 보자.

    입력

        SELECT department_id, emp_name, hire_date, salary,
               NTH_VALUE(salary, 2) OVER (PARTITION BY department_id ORDER BY hire_Date
                                          ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
                                         ) AS all_salary,
               NTH_VALUE(salary, 2) OVER (PARTITION BY department_id ORDER BY hire_Date
                                          ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
                                         ) AS fr_st_to_current_sal,
               NTH_VALUE(salary,2 ) OVER (PARTITION BY department_id ORDER BY hire_Date
                                          ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
                                         ) AS fr_current_to_end_sal
          FROM employees
         WHERE department_id IN (30, 90) ;
    
    그림 7-29 NTH_VALUE 함수

    30번 부서는 all_salary 컬럼 값으로 두 번째에 해당하는 Alexander의 급여가 모든 로우에 걸쳐 출력되었다. Den은 fr_st_to_current_sal 컬럼 값이 NULL인데, 이는 처음부터 현재 로우까지를 대상으로 두 번째 로우를 가져와야 하는데 두 번째 로우가 없기 때문에 NULL이 나온 것이다. 마찬가지로 Karen은 현재 로우부터 끝 지점까지를 대상으로 하면 두 번째 로우가 없기 때문에 fr_current_to_end_sal 값이 NULL로 출력되었다.

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