앞서 시간 윈도우 롤링 계산을 학습할 때 위와 같은 계산 방식을 한 번에 처리하는 방법을 알
아봤습니다. 바로
Frame
절을 사용하는 방법입니다.
avg
윈도우 함수를
Frame
절과 함께 사
용하면 더 간단해집니다.
PARTITION
BY
절에서
date
_
part
함수를 사용해 같은 월끼리 계산
을 수행하게끔 그룹화하고
ORDER
BY
절로 정렬합니다. 여기에
Frame
절의
rows
between
3
preceding
and
1
preceding
을 코드에 추가하면 다음과 같이
1
행,
2
행,
3
행 이전의 값을 가
져옵니다.
SELECT
sales_month, sales
,sales /
avg
(sales)
over
(
partition
by
date_part(‘month’,sales_month)
order
by
sales_month
rows
between
3
preceding
and
1
preceding
) * 100
as
pct_of_prev_3
FROM
retail_sales
WHERE
kind_of_business = ‘Book stores’
;
sales_month sales pct_of_prev_3
----------- ----- -------------
1992-01-01 790 (null)
1993-01-01 998 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.
O’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
I wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
I’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
I'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.