Shipping data model - company lists

This commit is contained in:
CIEF ACC1
2023-12-29 09:42:08 +00:00
parent 4514c35db4
commit cfc1e36d9a
@@ -0,0 +1,96 @@
-- AVAILABLE FILTER VALUE
-- SOURCE: preset_custom_filter Column: day_use_to_churn
{% set day_use_to_churn = 120 %}
-- IMPORT
WITH companies AS (
SELECT * FROM {{ ref('dim_shipping__companies') }}
),
origin_warehouse_shipping_packing_lists AS (
SELECT * FROM {{ ref('fct_shipping__origin_warehouse_shipping_packing_lists') }}
),
-- LOGIC
company_agg AS (
SELECT
companies.sub_company_id,
companies.sub_company_marking_id,
companies.is_migrated_company,
companies.sub_company_created_datetime,
COUNT(origin_warehouse_shipping_packing_lists.origin_warehouse_shipping_packing_list_id) AS count_order,
MAX(origin_warehouse_shipping_packing_lists.origin_warehouse_shipping_order_created_datetime) AS last_order_created_datetime,
COALESCE(last_order_created_datetime, sub_company_created_datetime) AS last_activity_datetime,
COUNT(IFF(
origin_warehouse_shipping_packing_lists.origin_warehouse_shipping_order_status IN ('APPROVED', 'COMPLETED'),
origin_warehouse_shipping_packing_lists.origin_warehouse_shipping_packing_list_id,
null
)) AS count_approved_completed_order,
IFF(MAX(
origin_warehouse_shipping_packing_lists.origin_warehouse_shipping_order_created_datetime IS NULL
), 1, 0
) AS is_never_order_company,
IFF(DATEDIFF(
day, last_activity_datetime, CURRENT_DATE()
) >= {{day_use_to_churn}},
1, 0
) AS is_churn_company,
IFF(is_churn_company = 1,
DATEDIFF(day, sub_company_created_datetime, last_activity_datetime) + {{day_use_to_churn}},
null
) AS create_to_churn_day,
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
FROM companies
LEFT JOIN origin_warehouse_shipping_packing_lists
ON (companies.sub_company_id = origin_warehouse_shipping_packing_lists.sub_company_id)
GROUP BY
companies.sub_company_id,
companies.sub_company_marking_id,
companies.is_migrated_company,
companies.sub_company_created_datetime
),
-- FINAL
final__rep_shipping__company_lists AS (
SELECT
-- id
sub_company_id,
sub_company_marking_id,
-- dimensions
is_migrated_company,
is_never_order_company,
is_churn_company,
-- measures
count_order,
count_approved_completed_order,
create_to_churn_day,
-- date/time
sub_company_created_datetime,
last_order_created_datetime,
last_activity_datetime,
-- metadata
_dbt_ran_datetime
FROM company_agg
)
SELECT * FROM final__rep_shipping__company_lists