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;
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.