diff --git a/models/intermediate/kpis/int_kpis__dimension_dates.sql b/models/intermediate/kpis/int_kpis__dimension_dates.sql index 1e236cf..ed011f7 100644 --- a/models/intermediate/kpis/int_kpis__dimension_dates.sql +++ b/models/intermediate/kpis/int_kpis__dimension_dates.sql @@ -8,16 +8,20 @@ with select id.year_number as year, id.month_of_year as month, + id.week_of_year as week, id.day_of_month as day, id.date_day as date, id.month_start_date as first_day_month, id.month_end_date as last_day_month, + id.week_start_date as first_day_week, + id.week_end_date as last_day_week, now()::date as today from int_dates id ) select distinct rd.year, rd.month, + rd.week, rd.day, rd.date, rd.first_day_month, @@ -37,7 +41,15 @@ select distinct and rd.day < extract(day from rd.today) then true else false - end as is_month_to_date + end as is_month_to_date, + rd.first_day_week, + rd.last_day_week, + case when rd.date = rd.last_day_week then true else false end as is_end_of_week, + case + when date_trunc('week', rd.date) = date_trunc('week', rd.today) + then true + else false + end as is_current_week from raw_dates rd where -- include only up-to yesterday diff --git a/models/intermediate/kpis/schema.yml b/models/intermediate/kpis/schema.yml index d3399d8..79a4023 100644 --- a/models/intermediate/kpis/schema.yml +++ b/models/intermediate/kpis/schema.yml @@ -26,6 +26,12 @@ models: tests: - not_null + - name: week + data_type: int + description: Week number of the given date. + tests: + - not_null + - name: day data_type: int description: Day monthly number of the given date. @@ -70,6 +76,33 @@ models: tests: - not_null + - name: first_day_week + data_type: date + description: | + First day of the week corresponding to the date field. + tests: + - not_null + + - name: last_day_week + data_type: date + description: | + Last day of the week corresponding to the date field. + tests: + - not_null + + - name: is_end_of_week + data_type: boolean + description: True if it's end of week, false otherwise. + tests: + - not_null + + - name: is_current_week + data_type: boolean + description: | + True if the date is within the current week, false otherwise. + tests: + - not_null + - name: int_kpis__lifecycle_daily_accommodation description: | This model computes the daily lifecycle segment for each accommodation, also known as