본문 바로가기
IT/ORACLE

[ORACLE] 오라클 FIRST_VALUE,LAST_VALUE 함수 사용법 및 예제

by 베베야 2021. 5. 11.
728x90

이번시간에는 오라클 FIRST_VALUE,LAST_VALUE 함수에 대해서 알아보겠습니다.
- FIRST_VALUE : 첫번째 행의 값을 가져옴
- LAST_VALUE : 마지막 행의 값을 가져옴

 

FIRST_VALUE,LAST_VALUE 함수 예제.txt
0.00MB

 

 

사전 준비

--테이블 생성
CREATE TABLE EMP
(
    EMPNO NUMBER
    ,ENAME VARCHAR2(50)
    ,SAL   FLOAT
    ,MGR   NUMBER
)

--데이터 삽입
INSERT INTO EMP VALUES (100,'A',999,'');
INSERT INTO EMP VALUES (400,'B',666,'300');
INSERT INTO EMP VALUES (300,'C',777,'200');
INSERT INTO EMP VALUES (500,'D',555,'200');
INSERT INTO EMP VALUES (200,'E',888,'100');
INSERT INTO EMP VALUES (600,'F',666,'400');
COMMIT;

--데이터 조회
SELECT * FROM EMP
EMPNO ENAME SAL MGR
100     A   999 
400     B   666 300
300     C   777 200
500     D   555 200
200     E   888 100
600     F   666 400


예제 쿼리#1

SELECT EMPNO
      ,ENAME
      ,SAL
     , FIRST_VALUE(SAL) OVER() AS sal_first
     , LAST_VALUE(SAL) OVER() AS sal_last
FROM EMP

--SAL의 첫번째 값은 999, 마지막 값은 666
EMPNO ENAME SAL SAL_FIRST SAL_LAST
100     A   999 999         666
400     B   666 999         666
300     C   777 999         666
500     D   555 999         666
200     E   888 999         666
600     F   666 999         666

 

예제 쿼리#2

SELECT EMPNO
      ,ENAME
      ,SAL
     , FIRST_VALUE(SAL) OVER(ORDER BY EMPNO ) AS sal_first 
FROM EMP

--EMPNO 로 정렬
EMPNO ENAME SAL SAL_FIRST
100     A   999 999
200     E   888 999
300     C   777 999
400     B   666 999
500     D   555 999
600     F   666 999
반응형
그리드형

댓글