FIRST_VALUE
파티션별 윈도우에서 가장 먼저 나온 값을 구할 수 있음.
EX1) 부서별 직원들을 연봉이 높은 순서부터 정렬하고, 파티션 내에서 가장 먼저 나온 값 출력
SELECT DEPTNO, ENAME, SAL,
FIRST_VALUE(SAL) OVER ( PARTITION BY DEPTNO ORDER BY SAL DESC) AS FIRST_VALUE
FROM EMP;
LAST_VALUE
파티션별 윈도우에서 가장 나중에 나온 값을 구할 수 있음.
EX1) 부서별 직원들을 연봉이 높은 순서부터 정렬하고, 파티션 내에서 가장 나중에 나온 값 출력
SELECT DEPTNO, ENAME, SAL, LAST_VALUE(SAL) OVER ( PARTITION BY DEPTNO ) AS LAST_VALUE
FROM EMP;
LAG
파티션별 윈도우에서 이전 N번째 데이터를 가져올 수 있다.
LAG 함수는 3개의 인자까지 사용할 수 있으며,
첫 번째는 컬럼명, 두 번째는 몇 번째 앞의 행을 가져올지, 세 번째는 가져올 데이터가 없을 경우 넣을 값이다.
두 번째와 세 번째 인자는 생략 가능하다. 생략하게 되면 바로 이전의 데이터를 가져오며 데이터가 없을경우 NULL이다.
EX1) 두 행 앞의 SALARY를 가져오고, 값이 없을 경우는 0 출력
SELECT ENAME, SAL, LAG(SAL,2,0) OVER (ORDER BY SAL) AS PRE_SAL
FROM EMP;
LEAD
LAG와 반대로 이전이 아닌 이후의 N번째 행의 값을 가져올 수 있다.
LAG와 마찬가지로 3개의 아규먼트를 받을 수 있다.
EX1) 입사일이 빠른순으로 정렬하고, 그 다음 입사자의 입사일을 출력
SELECT ENAME, HIREDATE, LEAD(HIREDATE,1) OVER (ORDER BY HIREDATE) AS NEXT
FROM EMP;
'SQLD > SQL 기본 및 활용' 카테고리의 다른 글
윈도우 함수(WINDOW FUNCTION) 5 - 그룹 내 비율 함수 (1) | 2019.07.04 |
---|---|
윈도우 함수(WINDOW FUNCTION) 3 - 일반 집계 함수 (0) | 2019.07.04 |
윈도우 함수(WINDOW FUNCTION) 2 - 그룹 내 순위 함수 (0) | 2019.07.04 |
윈도우 함수(WINDOW FUNCTION) 1 - 종류 및 문법 (0) | 2019.07.04 |