데이터베이스/데이터베이스 공부
그룹 내 행 순서 함수(FIRST_VALUE, LAST_VALUE, LAG, LEAD)
아밍나
2022. 9. 3. 17:08
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
반응형