data-dwh-dbt-project/models/intermediate/kpis/int_kpis__agg_daily_deals.sql
Oriol Roqué Paniagua d8a0bb07d3 Merged PR 4395: Propagates business scope into Deal/Listing metrics
# Description

Changes:
* Propagates business scope, based on deal, for Deal and Listing metrics. This already handles the daily metric and the daily aggregation.
* Modifies lifecycle_daily_deal to depend on dimension_deals and compute API segmentation.
* Creates new metric: Live Deals, that includes New, Active and Reactivated. This will be needed for YTD/MTD overview.

# Checklist

- [X] The edited models and dependants run properly with production data.
- [X] The edited models are sufficiently documented.
- [X] The edited models contain PK tests, and I've ran and passed them.
- [X] I have checked for DRY opportunities with other models and docs.
- [X] I've picked the right materialization for the affected models.

# Other

- [ ] Check if a full-refresh is required after this PR is merged.

Related work items: #27356
2025-02-13 16:34:14 +00:00

33 lines
1.2 KiB
SQL

{% set dimensions = get_kpi_dimensions_per_model("DEALS") %}
{{ config(materialized="table", unique_key=["date", "dimension", "dimension_value"]) }}
{% for dimension in dimensions %}
select
-- Unique Key --
d.date,
{{ dimension.dimension }} as dimension,
{{ dimension.dimension_value }} as dimension_value,
-- Date Attributes --
d.is_current_month,
d.is_end_of_month,
d.is_month_to_date,
-- Metrics --
sum(new_deals) as new_deals,
sum(never_booked_deals) as never_booked_deals,
sum(active_deals) as active_deals,
sum(churning_deals) as churning_deals,
sum(inactive_deals) as inactive_deals,
sum(reactivated_deals) as reactivated_deals,
sum(deals_booked_in_month) as deals_booked_in_month,
sum(deals_booked_in_6_months) as deals_booked_in_6_months,
sum(deals_booked_in_12_months) as deals_booked_in_12_months,
sum(live_deals) as live_deals
from {{ ref("int_kpis__dimension_dates") }} d
left join {{ ref("int_kpis__metric_daily_deals") }} as mdd on d.date = mdd.date
group by 1, 2, 3, 4, 5, 6
{% if not loop.last %}
union all
{% endif %}
{% endfor %}