더북(TheBook)

실행결과

코드 11-23에서는 FIRST_VALUE(), LAST_VALUE() 함수와 프레임 절을 함께 사용합니다. 105번은 범위가 104, 105, 106번 로우이므로 FIRST_VALUE() 함수의 반환값은 104번의 급여인 6000, LAST_VALUE() 함수 반환값은 106번의 급여인 4800입니다. 마찬가지로 106번은 105번부터 107번까지가 범위이므로 FIRST_VALUE() 함수는 4800, LAST_VALUE() 함수는 4200을 반환했습니다.

코드 11-24

SELECT employee_id, emp_name, dept_name, salary,
       FIRST_VALUE(salary) OVER (PARTITION BY dept_name
                                     ORDER BY salary DESC
                                 RANGE BETWEEN 1000 PRECEDING AND 1000 FOLLOWING
                                ) firstvalue,
       LAST_VALUE(salary) OVER (PARTITION BY dept_name
                                    ORDER BY salary DESC
                                RANGE BETWEEN 1000 PRECEDING AND 1000 FOLLOWING
                               ) lastvalue
  FROM emp_hierarchy
 WHERE dept_name IN ('IT', 'Finance')
 ORDER BY 3, 4 DESC;
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.