Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- mssql
- numeric
- Temp Table
- 숫자변환
- 소계
- 이전행
- 날짜형식
- SQLSearch
- ID만들기
- SQL
- 태블로 #tableau #비율막대그래프
- 테이블조회
- altertable
- Date
- sqlsearch설치
- 문자 숫자 조합 문자
- object검색
- LAG
- 테이블정보
- 날짜포멧
- Date Format
- 변수 생성
- 다음행
- REPLICATE
- 임시테이블
- Lead
- grouping sets
- indexOf
- replace
- 총계
Archives
- Today
- Total
Data Scientist
[MSSQL] 이전행, 다음행 데이터 조회 LAG, LEAD 함수 본문
먼저 SQL Server 2012 이상 에서 작동한다는 것을 참고하기 바란다.
LAG, LEAD 함수는 현재 조회되는 행의 이전행, 다음행의 데이터를 같은 행에서 조회할 수 있게 해주는 함수이다. 이전행과 다음행의 데이터를 가져오는 기준은 조회 되는 결과 값에 따라서 출력된다.
원본 데이터 셋
SELECT EMP_ID,
EMP_SAL,
MONTH_DT
REG_DATE
FROM EMP_MAST
ORDER BY EMP_ID, MONTH_DT
EMP_ID | EMP_SAL | MONTH_DT | REG_DATE | |
1 | A001 | 300 | 202001 | 2020-01-01 00:00:00.000 |
2 | A001 | 400 | 202002 | 2020-02-01 00:00:00.000 |
3 | A001 | 500 | 202003 | 2020-03-01 00:00:00.000 |
4 | B002 | 200 | 202001 | 2020-01-01 00:00:00.000 |
5 | B002 | 210 | 202002 | 2020-02-01 00:00:00.000 |
6 | B002 | 220 | 202003 | 2020-03-01 00:00:00.000 |
7 | C003 | 100 | 202001 | 2020-01-01 00:00:00.000 |
8 | C003 | 150 | 202002 | 2020-02-01 00:00:00.000 |
LAG / LEAD 함수 활용
SELECT EMP_ID,
EMP_SAL,
MONTH_DT,
LAG(EMP_SAL, 1, NULL) OVER(PARTITION BY EMP_ID ORDER BY MONTH_DT) AS PREV_EMP_SAL,
LEAD(EMP_SAL, 1, NULL) OVER(PARTITION BY EMP_ID ORDER BY MONTH_DT) AS NEXT_EMP_SAL
FROM EMP_MAST
ORDER BY EMP_ID, MONTH_DT
EMP_ID | MONTH_DT | EMP_SAL | PREV_EMP_SAL | NEXT_EMP_SAL | |
1 | A001 | 202001 | 300 | NULL | 400 |
2 | A001 | 202002 | 400 | 300 | 500 |
3 | A001 | 202003 | 500 | 400 | NULL |
4 | B002 | 202001 | 200 | NULL | 210 |
5 | B002 | 202002 | 210 | 200 | 220 |
6 | B002 | 202003 | 220 | 210 | NULL |
7 | C003 | 202001 | 100 | NULL | 150 |
8 | C003 | 202002 | 150 | 100 | NULL |
붉은색, 초록색, 보라색 끼리 그룹지어 데이터를 확인하면 된다.
'SQL' 카테고리의 다른 글
[MSSQL] 문자(VARCHAR)를 숫자 형식 타입 변경 (0) | 2020.09.08 |
---|---|
[MSSQL] 다중 GROUP 지정 GROUP BY GROUPING SETS (0) | 2020.08.07 |
[MSSQL] 날짜 형식 (DATE FORMAT) (0) | 2020.08.07 |
[MSSQL] 특정 길이만큼 문자 확인 및 채우기 (ID Generator, REPLICATE) (0) | 2020.08.07 |
[MSSQL] 문자열 관련 함수 정리 (0) | 2020.08.07 |