반응형
SQL의 LAG 함수는 데이터 분석에 있어 중요한 도구 중 하나입니다. 이 함수는 현재 행에서 지정된 수의 행 앞에 있는 데이터를 검색합니다. 이를 통해 현재 데이터와 이전 데이터를 비교하거나 시계열 데이터에서 이전 시점의 값을 분석하는 데 사용됩니다.
온도 변화 추적하기: LAG 함수로 이전 날짜의 날씨 비교하기
예를 들어, 날씨 데이터가 있는 테이블 Weather가 있고, 각 날짜(recordDate)와 해당 날짜의 온도(temperature)를 기록하고 있다고 가정해 봅시다. 여기서 LAG 함수를 사용하면, 각 행의 온도와 이전 날짜의 온도를 쉽게 비교할 수 있습니다.
SELECT
id,
recordDate,
temperature,
LAG(recordDate, 1) OVER (ORDER BY recordDate) AS pre_date,
LAG(temperature, 1) OVER (ORDER BY recordDate) AS pre_temp
FROM Weather
ORDER BY recordDate;
이 SQL 쿼리는 LAG 함수를 사용하여 각 날짜의 온도(temperature)와 이전 날짜의 온도(pre_temp), 그리고 이전 날짜(pre_date)를 검색합니다. LAG 함수의 두 번째 인자는 몇 개의 행을 건너뛸지를 지정합니다. 여기서는 1을 사용하여 바로 이전 행의 데이터를 가져옵니다. ORDER BY 절은 recordDate 컬럼을 기준으로 데이터를 정렬하여 시간 순서대로 이전 값을 찾을 수 있도록 합니다.
이 쿼리의 실행 결과는 다음과 같습니다:
idrecordDatetemperaturepre_datepre_temp
ID | recordDate | temperature | pre_date | pre_temp |
1 | 2015-01-01 | 10 | null | null |
2 | 2015-01-02 | 25 | 2015-01-01 | 10 |
3 | 2015-01-03 | 20 | 2015-01-02 | 25 |
4 | 2015-01-04 | 30 | 2015-01-03 | 20 |
LAG 함수는 데이터의 시간적 변화를 분석하거나, 이전 데이터와의 차이를 계산하는 데 유용합니다. 이와 같은 분석은 특히 재고 관리, 재무 분석, 기후 변화 연구 등 다양한 분야에서 중요한 인사이트를 제공할 수 있습니다.
반응형
'프로그래밍 언어(Programming Languages) > SQL' 카테고리의 다른 글
[SQL] SQL UNION vs UNION ALL 비교 분석 🌟 (1) | 2024.11.08 |
---|---|
[SQL] SQL에서 IN과 EXISTS 사용법 알아보기! 💻✨ (1) | 2024.11.07 |
[SQL] SUBQUERY 서브쿼리의 마법 🧙♂️✨ (75) | 2023.12.18 |
[SQL] SQL에서 FULL JOIN과 "1=1" 구문 이해하기 🧐 (62) | 2023.12.12 |
[SQL] SQL 윈도우 함수(Window Functions): 데이터 분석의 마법사가 되는 방법 🧙♂️🔍 (2) | 2023.12.10 |