LAG 함수 정의
SELECT LAG([대상 컬럼], [이전 offset], [기본값]) OVER (PARTITION BY [..] ORDER BY [..])
LAG함수를 이용하면, 이전 행 값과 다음 행의 값을 비교할 수 있다.
예시 문제: 이전 일과 비교했을 때, 온도가 더 높았던 날짜를 집계하기
with tmp as (
select id ,RecordDate,Temperature,
LAG (Temperature,1) OVER (ORDER BY RecordDate) AS prev_Temperature,
LAG (RecordDate,1) OVER (ORDER BY RecordDate) AS prev_RecordDate
from Weather)
select id from tmp where Temperature>prev_Temperature and (RecordDate-prev_RecordDate)=1
1. 바로 날짜를 찾을 수 없기 때문에, 온도가 더 높았던 때를 찾기위해 with 서브쿼리절로 먼저 묶어주었다.
2. LAG함수를 이용하여 날짜와 온도를 비교하는 값을 출력해주었다.
'DATA > SQL' 카테고리의 다른 글
SQL: Leet code 문제풀이(570, 1934, 620) (0) | 2025.01.23 |
---|---|
SQL풀이: Leetcode 1661. Average Time of Process per Machine (0) | 2025.01.15 |
241211 SQL 코드카타(조건에 맞는 사용자 정보 조회하기, 조건에 부합하는 중고거래 상태 조회하기, 취소되지 않은 진료 예약 조회하기) (3) | 2024.12.11 |
SQL 코드카타 풀이(없어진 기록 찾기, 과일로 만든 아이스크림 고르기, 재구매가 일어난 상품과 회원 구하기) (1) | 2024.12.10 |