From 684c233ff94dcb73b132031c520d0e6ae021fce4 Mon Sep 17 00:00:00 2001 From: Joaquin Date: Thu, 27 Mar 2025 16:30:22 +0100 Subject: [PATCH] second fix --- ...int_kpis__product_new_dash_agg_metrics.sql | 62 +++++++++++++------ 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/models/intermediate/kpis/int_kpis__product_new_dash_agg_metrics.sql b/models/intermediate/kpis/int_kpis__product_new_dash_agg_metrics.sql index 94306f7..ea3a4dc 100644 --- a/models/intermediate/kpis/int_kpis__product_new_dash_agg_metrics.sql +++ b/models/intermediate/kpis/int_kpis__product_new_dash_agg_metrics.sql @@ -37,12 +37,29 @@ with int_kpis__agg_monthly_new_dash_accommodation_offered_services as ( select * from {{ ref("int_kpis__agg_monthly_new_dash_accommodation_offered_services") }} + ), + all_dates as ( + select distinct date, dimension, dimension_value + from + ( + select date, dimension, dimension_value + from int_kpis__agg_daily_new_dash_created_services + union all + select date, dimension, dimension_value + from int_kpis__agg_daily_new_dash_chargeable_services + union all + select date, dimension, dimension_value + from int_kpis__agg_daily_new_dash_deals_offered_services + union all + select date, dimension, dimension_value + from int_kpis__agg_daily_new_dash_accommodation_offered_services + ) combined ) select - coalesce(created.date, chargeable.date) as date, + d.date, 'daily' as time_granularity, - coalesce(created.dimension, chargeable.dimension) as dimension, - coalesce(created.dimension_value, chargeable.dimension_value) as dimension_value, + d.dimension, + d.dimension_value, coalesce( deals.deal_with_offered_service_count, 0 ) as deal_with_offered_service_count, @@ -59,28 +76,33 @@ select ) as total_chargeable_amount_in_gbp, coalesce(chargeable.unique_chargeable_bookings, 0) as unique_chargeable_bookings, coalesce(chargeable.unique_chargeable_listings, 0) as unique_chargeable_listings -from int_kpis__agg_daily_new_dash_created_services created -full outer join +from all_dates d +left join + int_kpis__agg_daily_new_dash_created_services created + on d.date = created.date + and d.dimension = created.dimension + and d.dimension_value = created.dimension_value +left join int_kpis__agg_daily_new_dash_chargeable_services chargeable on created.date = chargeable.date and created.dimension = chargeable.dimension and created.dimension_value = chargeable.dimension_value -full outer join +left join int_kpis__agg_daily_new_dash_deals_offered_services deals on created.date = deals.date and created.dimension = deals.dimension and created.dimension_value = deals.dimension_value -full outer join +left join int_kpis__agg_daily_new_dash_accommodation_offered_services accommodation on created.date = accommodation.date and created.dimension = accommodation.dimension and created.dimension_value = accommodation.dimension_value union all select - coalesce(created.end_date, chargeable.end_date) as date, + d.date, 'weekly' as time_granularity, - coalesce(created.dimension, chargeable.dimension) as dimension, - coalesce(created.dimension_value, chargeable.dimension_value) as dimension_value, + d.dimension, + s.dimension_value, coalesce( deals.deal_with_offered_service_count, 0 ) as deal_with_offered_service_count, @@ -98,27 +120,27 @@ select coalesce(chargeable.unique_chargeable_bookings, 0) as unique_chargeable_bookings, coalesce(chargeable.unique_chargeable_listings, 0) as unique_chargeable_listings from int_kpis__agg_weekly_new_dash_created_services created -full outer join +left join int_kpis__agg_weekly_new_dash_chargeable_services chargeable on created.end_date = chargeable.end_date and created.dimension = chargeable.dimension and created.dimension_value = chargeable.dimension_value -full outer join +left join int_kpis__agg_weekly_new_dash_deals_offered_services deals on created.end_date = deals.date and created.dimension = deals.dimension and created.dimension_value = deals.dimension_value -full outer join +left join int_kpis__agg_weekly_new_dash_accommodation_offered_services accommodation on created.end_date = accommodation.date and created.dimension = accommodation.dimension and created.dimension_value = accommodation.dimension_value union all select - coalesce(created.end_date, chargeable.end_date) as date, + d.date, 'monthly' as time_granularity, - coalesce(created.dimension, chargeable.dimension) as dimension, - coalesce(created.dimension_value, chargeable.dimension_value) as dimension_value, + d.dimension, + s.dimension_value, coalesce( deals.deal_with_offered_service_count, 0 ) as deal_with_offered_service_count, @@ -136,18 +158,18 @@ select coalesce(chargeable.unique_chargeable_bookings, 0) as unique_chargeable_bookings, coalesce(chargeable.unique_chargeable_listings, 0) as unique_chargeable_listings from int_kpis__agg_monthly_new_dash_created_services created -full outer join +left join int_kpis__agg_monthly_new_dash_chargeable_services chargeable on created.end_date = chargeable.end_date and created.dimension = chargeable.dimension and created.dimension_value = chargeable.dimension_value -full outer join +left join int_kpis__agg_monthly_new_dash_deals_offered_services deals on created.end_date = deals.date and created.dimension = deals.dimension and created.dimension_value = deals.dimension_value -full outer join - int_kpis__agg_monthly_new_dash_accommodation_offered_services accommodation +left join on created.end_date = accommodation.date and created.dimension = accommodation.dimension and created.dimension_value = accommodation.dimension_value + int_kpis__agg_monthly_new_dash_accommodation_offered_services accommodation