더북(TheBook)

11.2.4 프레임 절과 윈도우 함수 함께 사용하기

윈도우 함수 중 FIRST_VALUE(), LAST_VALUE(), NTH_VALUE() 함수는 앞에서 다루지 않았는데, 세 함수는 프레임 절과 함께 사용하기 때문입니다. 세 함수를 제외한 나머지 윈도우 함수도 프레임 절과 함께 사용할 수는 있지만, 계산 결과에 아무 영향도 주지 않아서 프레임 절을 사용하든 사용하지 않든 반환값은 동일합니다. 그럼 세 함수의 사용법을 알아봅시다.

 

FIRST_VALUE( ), LAST_VALUE( )

FIRST_VALUE()LAST_VALUE() 함수는 주어진 프레임의 첫 번째 로우의 값과 마지막 로우의 값을 반환합니다. 두 함수 역시 프레임 절에서 ROWS를 사용했을 때와 RANGE를 사용했을 때의 반환값이 다릅니다. 예제로 알아보죠.

코드 11-23

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