데이터베이스/데이터베이스 공부

그룹 내 행 순서 함수(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
반응형