-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrpt__daily_rolling_peaks.sql
More file actions
49 lines (43 loc) · 1.55 KB
/
rpt__daily_rolling_peaks.sql
File metadata and controls
49 lines (43 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{{ config(materialized="table") }}
{% set peak_columns = dbt_utils.star(
from=ref("stg__activities_peaks"),
except=["id",
"start_time_ts",
"start_time_utc",
"end_time_ts"]).split(",")
%}
{% set lookbacks_columns = get_max_over_lookbacks_columns(
columns=peak_columns,
lookback_windows=var("lookback_windows")
)
%}
with
activities_peaks as (select * from {{ ref("stg__activities_peaks") }}),
dates as (select * from {{ ref("util__dates") }}),
maxes_per_day as (
select
dates.date_day,
{{
get_max_over_lookbacks(
columns=peak_columns,
order_by_columns="unix_date(cast(dates.date_day as date))",
lookback_windows=var("lookback_windows")
)
}}
from dates
left join activities_peaks a
on cast(a.start_time_utc as date) = dates.date_day
where
dates.date_day between cast(
'{{ var("training_start_date") }}' as datetime
) and cast(current_date() as datetime)
),
final as (
select
date_day,
{{ get_max(lookbacks_columns) }}
from maxes_per_day
group by date_day
)
select *
from final