티스토리 뷰

1. LAG(),LEAD() - 역할

LAG- 명시된 값을 기준으로 이전 로우의 값 반환


LEAD- 명시된 값을 기준으로 이후 로우의 값 반환


◈ 구문형식


LAG( 조건 , 순서, 디폴트) OVER ( PARTITION BY 절)


LEAD( 조건 , 순서, 디폴트) OVER ( PARTITION BY 절)



2. LAG(),LEAD() - 기본 테이블

◈ TEST_TABLE_ONE


 IDX

NAME

ID

 DEPT

AMT

 1

테스트1

test1

 test_d1

1000

 2

테스트2

test2

 test_d1

2000

 3

테스트3

test3

 test_d2

 2000 

 4

테스트4

test4

 test_d2

 4000 

 5

테스트5

test5

 test_d2

 5000 



3. LAG(),LEAD() - SQL 문장

◈ SQL

1
2
3
4
5
6
SELECT NAME
      ,AMT
      ,LAG(NAME) OVER(ORDER BY NAME) AS PREV_NAME
      ,LEAD(NAME) OVER(ORDER BY NAME) AS NEXT_NAME 
      ,LEAD(NAME,2,'이름 없음'OVER(ORDER BY NAME) AS T_NEXT_NAME
            FROM TEST_TABLE_ONE




◈ 결과 테이블


 NAME

AMT

PREV_NAME

NEXT_NAME

 T_NEXT_NAME

테스트1

1000 


테스트2

테스트3 

테스트2

2000 

테스트1

테스트3

테스트4 

테스트3

2000 

테스트2

테스트4

테스트5 

테스트4

3000 

테스트3

테스트5

이름 없음 

테스트5

4000

테스트4


이름 없음 



◈ 설명


PREV_NAME : LAG 함수를 활용하여 이전에 있는 NAME 값을 가져옵니다.

                   없을 경우는 NULL 입니다.

NEXT_NAME : LEAD 함수를 활용하여 이후에 있는 NAME 값을 가져옵니다.

                    없을 경우는 NULL 입니다.

T_NEXT_NAME : LEAD 함수를 활용하는데 순서는 2번째 부터 즉 테스트1,테스트2를 건너 뛰고 테스트3

부터  가져오고 디폴트 값이 '이름 없음' 즉 NULL 일 경우에는 '이름 없음'으로 표시하게 합니다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday