data-dwh-dbt-project/models/intermediate/kpis/int_kpis__dimension_deals.sql
2025-01-20 17:18:39 +01:00

67 lines
2.6 KiB
SQL

{{ config(materialized="table", unique_key="id_deal") }}
with
hubspot_deals as (
select
id_deal,
deal_name as main_deal_name,
live_date_utc as deal_start_date,
date_trunc('month', live_date_utc) as deal_start_month,
cancellation_date_utc as deal_cancellation_date,
date_trunc('month', cancellation_date_utc) as deal_cancellation_month,
case
when amount_of_properties between 1 and 5
then '01-05'
when amount_of_properties between 6 and 20
then '06-20'
when amount_of_properties between 21 and 60
then '21-60'
when amount_of_properties >= 61
then '61+'
else 'UNSET'
end as hubspot_listing_segmentation
from {{ ref("int_hubspot__deal") }}
where live_date_utc is not null
),
core_deals as (
select
id_deal,
main_deal_name,
has_active_pms,
active_pms_list,
first_created_date_utc as deal_start_date,
date_trunc('month', first_created_date_utc) as deal_start_month,
main_billing_country_iso_3_per_deal
from {{ ref("int_core__deal") }}
),
combined_deals as (
select
coalesce(hd.id_deal, cd.id_deal) as id_deal,
coalesce(hd.main_deal_name, cd.main_deal_name) as main_deal_name,
coalesce(cd.has_active_pms, false) as has_active_pms,
cd.active_pms_list,
cd.main_billing_country_iso_3_per_deal,
min(
coalesce(hd.deal_start_date, cd.deal_start_date)
) as effective_deal_start_date_utc,
min(
coalesce(hd.deal_start_month, cd.deal_start_month)
) as effective_deal_start_month,
min(hd.deal_cancellation_date) as hubspot_deal_cancellation_date_utc,
min(hd.deal_cancellation_month) as hubspot_deal_cancellation_month,
min(hd.hubspot_listing_segmentation) as hubspot_listing_segmentation
from hubspot_deals hd
full outer join core_deals cd on hd.id_deal = cd.id_deal
group by 1, 2, 3, 4, 5
)
select
cd.id_deal,
cd.main_deal_name,
cd.has_active_pms,
cd.active_pms_list,
cd.main_billing_country_iso_3_per_deal,
cd.effective_deal_start_date_utc,
cd.effective_deal_start_month,
cd.hubspot_deal_cancellation_date_utc,
cd.hubspot_deal_cancellation_month,
cd.hubspot_listing_segmentation
from combined_deals cd