728x90
FIRST_VALUE, LAST_VALUE, LAG, LEAD는 SQL Server에서 지원하지 않는 함수들이다.
1) FIRST_VALUE
파티션 별 윈도우에서 가장 먼저 나온 값을 구한다.
- MIN 함수를 활용하여 같은 결과를 얻을 수 있다.
2) LAST_VALUE
파티션 별 윈도우에서 가장 나중에 나온 값을 구한다.
- MIN 함수를 활용하여 같은 결과를 얻을 수 있다.
3) LAG
파티션 별 윈도우에서 이전 몇 번째 행의 값을 가져온다.
LAG ARGUMENTS (3개)
첫 번째 인자) 가져올 칼럼
두 번째 인자) 몇 번째 앞의 행을 가져올지 결정 (DEFAULT 1)
세 번째 인자) NVL, ISNULL
→ (파티션의 행에서 NULL 값이 들어올 때 다른 값으로 바꿔줌)
[예제] 본인보다 입사일자가 한 명 압선 사원의 급여를 본인의 급여와 함께 출력.
SELECT ENAME, HIREDATE, SAL,
LAG(SAL) OVER (ORDER BY HIREDATE) as PREV_SAL
FROM EMP
WEHRE JOB = 'SALESMAN';
[실행 결과]

4) LEAD
파티션 별 윈도우에서 이후 몇 번째 행의 값을 가져온다.
LEAD ARGUMENTS (3개)
첫 번째 인자) 가져올 칼럼
두 번째 인자) 몇 번째 후의 행을 가져올지 결정 (DEFAULT 1)
세 번째 인자) NVL, ISNULL
→ (파티션의 행에서 NULL 값이 들어올 때 다른 값으로 바꿔줌)
[예제]
SELECT ENAME, HIREDATE,
LEAD (HIREDATE) OVER (ORDER BY HIREDATE) as "NEXTHIRED"
FROM EMP;
[실행 결과]

728x90
반응형
'데이터베이스 > 데이터베이스 공부' 카테고리의 다른 글
[SQL 2005] SQL Server Database 복원 (0) | 2023.02.02 |
---|---|
엔터티의 분류(유형 엔터티, 개념 엔터티, 사건 엔터티, 기본 엔터티, 중심 엔터티, 행위 엔터티) (0) | 2022.09.04 |
그룹 내 순위 함수(RANK, DENSE_RANK, ROW_NUMBER) (0) | 2022.09.03 |
그룹 함수(ROLLUP, CUBE, GROUPING SETS) (0) | 2022.09.03 |
뷰(VIEW, VIEW 장점, VIEW 생성, VIEW 사용, VIEW 제거) (0) | 2022.09.03 |