오늘은 윈도우 함수인 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
이렇게 이전값을 불러올 수 있답니다.
'SQL 데이터 분석' 카테고리의 다른 글
[SQL스터디] Union all로 테이블 합치기 (0) | 2021.08.21 |
---|---|
[SQL스터디] 빅쿼리로 불러온 파일을 구글스프레드시트로 피봇테이블 만들기! (0) | 2021.08.18 |
[SQL스터디] left join으로 두 테이블 합치기 (0) | 2021.08.16 |