All thing of the world!

Oracle FIRST_VALUE 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle FIRST_VALUE 설명 : 오라클 함수

WorldSeeker 2021. 4. 6. 09:13

1. 함수의 목적 

   Oracle FIRST_VALUE는
분석용함수로, 정렬한 집합의 첫번째 값을 리턴한다.

2. 샘플을 통한 개념 퀵뷰

employees 테이블에서 부서아이디가 90인 직원들 중에 급여가 가장 낮은 직원의 이름과 급여를 조회한다.

SELECT department_id, last_name, salary,
FIRST_VALUE(last_name)
OVER (ORDER BY salary ASC ROWS UNBOUNDED PRECEDING) AS lowest_sal
FROM (SELECT * FROM employees
WHERE department_id = 90
ORDER BY employee_id)
ORDER BY last_name;


3. 사용방법  

* 참고 : 두 가지 형태의 사용방법 중 위쪽이 ANSI 포멧이다. ANSI포멧을 사용할 것을 추천한다.

4. 함수 PARAMETER 설명

[expr]

FIRST_VALUE로 평가할 기준 컬럼을 입력하는 입력 파라미터다.

[IGNORE][RESPECT][NULLS]

{REPECT | IGNORE} NULLS는 expr의 NULL 값이 펑션의 계산에 포함되는지 여부를 결정한다.
기본값은 RESPECT NULLS이다.
IGNORE NULLS를 지정하면 FIRST_VALUE는 집합의 NULL이 아닌 값중 첫번째 값을을 반환하고 모든 값이 NULL이면 NULL을 반환한다.



5. 다양한 샘플표현

example1) Kochhar와 DeHaan는 같은 연봉을 가지고 있다. 누가 FIRST_VALUE가 될까?

SELECT department_id, last_name, employee_id, salary,
FIRST_VALUE(last_name)
OVER (ORDER BY salary ASC ROWS UNBOUNDED PRECEDING) AS fv
FROM (SELECT * FROM employees
WHERE department_id = 90
ORDER by employee_id DESC)
ORDER BY last_name;


답은 DE Haan이다. 서브쿼리에서 employee_id desc로 소팅한 결과를 가지고 FIRST_VALUE를 계산했기 때문이다.
함수 사용시 유념해야할 부분이다.

Comments