반응형
LAG 함수란?
LAG 함수는 SQL 윈도우 함수의 한 종류로, 현재 행을 기준으로 이전 행의 값을 가져오는 역할을 합니다. 주로 시계열 데이터나 순서가 중요한 데이터에서 이전 행의 값과 현재 행의 값을 비교하거나 계산할 때 사용됩니다.
LAG (scalar_expression [, offset] [, default]) OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
- scalar_expression: 이전 행에서 가져오고 싶은 컬럼의 이름.
- offset: 현재 행으로부터 몇 칸 이전의 행을 참조할지 지정합니다. 기본값은 1입니다.
- default: offset만큼 떨어진 이전 행이 없을 때(보통 첫 번째 행), 반환할 기본값입니다. 기본값은 NULL입니다.
- PARTITION BY: 데이터를 특정 그룹으로 나눕니다. 그룹이 바뀌면 LAG 연산도 다시 시작됩니다.
- ORDER BY: 행의 순서를 결정합니다. LAG 함수는 이 순서에 따라 이전 행을 식별합니다.
- LAG(Amount, 1, 0): Amount 컬럼의 값을 가져오되, 1칸 이전 행의 값을 가져오고, 이전 행이 없을 경우 0을 반환합니다.
- OVER (ORDER BY SaleDate): 데이터를 SaleDate 오름차순으로 정렬하여 LAG 함수가 순서를 인식하도록 합니다.
LAG 함수는 이처럼 이전 값과의 비교, 이전 대비 변화량 계산, 누적 합계 재계산 등 다양한 분석 작업에 매우 유용합니다.
반응형
'프로그래밍 > DataBase' 카테고리의 다른 글
[SQL] 여러 개의 UPDATE 문을 실행한 후, 최종적으로 영향을 받은 전체 행의 개수를 세고 싶다 (1) | 2025.08.22 |
---|---|
[MSSQL] mssql ERD를 지원하는 오픈소스 프로그램 (0) | 2025.05.28 |
[MSSQL] update 구문 여러개를 실행하고 그 결과 row의 총 개수를 구하라 (0) | 2024.12.16 |
2025년을 위한 7개의 데이터베이스 (1) | 2024.12.16 |
[MSSQL] PIVOT. a, b, count(1) 를 group by 할때 A 가 5 종류인데 각 카운트를 한 로우에 칼럼으로 다 보여질수 있도록 (0) | 2024.10.21 |