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