본문 바로가기

SQL 데이터 분석

[SQL스터디] lag함수로 이전 데이터 불러오기

오늘은 윈도우 함수인 lag함수에 대해 스터디해보도록 할게요!

lag함수는 이전값을 불러와서 비교를 할 수 있기 해주는데요.

전일 대비, 전주 대비, 전월 대비, 전년 대비 성장률 등을 구할 때 유용하답니다

 

일단 테이블을 불러올게요!

 

판매 테이블인데요. 일자별 수량과 판매값이 나와있습니다.

SELECT *
FROM `studied-triode-319007.shipcmh_dataset.av_sales`

 

 

저는 일자별로 판매수량과 매출액을 파악해보도록 할게요

그러면 group by로 묶어주면 되겠죠?

SELECT MONTH_ID, count(MONTH_ID) as day_unit , round(sum(sales),1) as day_total
FROM `studied-triode-319007.shipcmh_dataset.av_sales` 
group by MONTH_ID)

 

이제 lag함수를 써볼텐데요.

저는 일자별 판매수량 및 매출액을 전일 기준으로 가져와보도록 할게요!

위에 group by로 묶은 테이블을 활용하도록 할게요!

 

with sales_raw as(
SELECT MONTH_ID, count(MONTH_ID) as day_unit , round(sum(sales),1) as day_total

FROM `studied-triode-319007.shipcmh_dataset.av_sales` 
group by MONTH_ID) 

select month_id, day_unit, day_total,
       lag(day_unit, 1) over(order by month_id) as prev_day_unit,
       lag(day_total, 1) over(order by month_id) as prev_day_total

    --    LAG(Temperature) OVER (ORDER BY RecordDate) AS 'lag'
 
from sales_raw 
order by month_id

 

이렇게 이전값을 불러올 수 있답니다.