mirror of
https://gitlab.com/cief-data/dbt_cloud.git
synced 2026-08-19 04:14:00 +00:00
Undo dbt
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
-- MARCRO for count the cummulative_activity_number
|
||||
{% set funnel_activity = ['register','email_verified','identity_document_uploaded','identity_document_verified','first_time_booking','first_time_order','first_time_order_completed','repeat_completed_order_after_30days','repeat_completed_order_after_60days']%}
|
||||
{% set funnel_activity = ['register','email_verified','identity_documents_uploaded','identity_documents_verified','first_time_booking','first_time_order','first_time_order_completed','repeat_completed_order_after_30days','repeat_completed_order_after_60days']%}
|
||||
|
||||
-- IMPORT
|
||||
WITH companies AS (
|
||||
@@ -69,13 +69,12 @@ company_first_time_order_date AS (
|
||||
|
||||
|
||||
|
||||
--start defind funnel activity
|
||||
--start defind funnel
|
||||
repeat_completed_order_after_60days_activities AS (
|
||||
SELECT
|
||||
clean_company_transaction_orders.company_id,
|
||||
0 AS is_data_cleansing_generate_row,
|
||||
'repeat_completed_order_after_60days' AS activity,
|
||||
9 AS activtity_rank,
|
||||
MIN(clean_company_transaction_orders.created_at) AS activity_datetime
|
||||
|
||||
FROM clean_company_transaction_orders
|
||||
@@ -95,7 +94,6 @@ repeat_completed_order_after_30days_activities AS (
|
||||
clean_company_transaction_orders.company_id,
|
||||
0 AS is_data_cleansing_generate_row,
|
||||
'repeat_completed_order_after_30days' AS activity,
|
||||
8 AS activtity_rank,
|
||||
MIN(clean_company_transaction_orders.created_at) AS activity_datetime
|
||||
|
||||
FROM clean_company_transaction_orders
|
||||
@@ -115,7 +113,6 @@ first_time_order_completed_activities AS (
|
||||
clean_company_transaction_orders.company_id,
|
||||
0 AS is_data_cleansing_generate_row,
|
||||
'first_time_order_completed' AS activity,
|
||||
7 AS activtity_rank,
|
||||
MIN(clean_company_transaction_orders.created_at) AS activity_datetime
|
||||
|
||||
FROM clean_company_transaction_orders
|
||||
@@ -132,7 +129,6 @@ first_time_order_activities AS (
|
||||
clean_company_transaction_orders.company_id,
|
||||
0 AS is_data_cleansing_generate_row,
|
||||
'first_time_order' AS activity,
|
||||
6 AS activtity_rank,
|
||||
MIN(clean_company_transaction_orders.created_at) AS activity_datetime
|
||||
|
||||
FROM clean_company_transaction_orders
|
||||
@@ -149,7 +145,6 @@ first_time_booking_activities AS (
|
||||
IFNULL( unclean_first_time_booking_activities.company_id , first_time_order_activities.company_id ) AS company_id,
|
||||
IFF( unclean_first_time_booking_activities.company_id IS NULL, 1, 0) AS is_data_cleansing_generate_row,
|
||||
'first_time_booking' AS activity,
|
||||
5 AS activtity_rank,
|
||||
IFNULL( unclean_first_time_booking_activities.activity_datetime , first_time_order_activities.activity_datetime ) AS activity_datetime
|
||||
|
||||
FROM
|
||||
@@ -173,20 +168,19 @@ first_time_booking_activities AS (
|
||||
),
|
||||
|
||||
|
||||
identity_document_verified_activities AS (
|
||||
identity_documents_verified_activities AS (
|
||||
SELECT
|
||||
IFNULL( unclean_identity_document_verified_activities.company_id , first_time_booking_activities.company_id ) AS company_id,
|
||||
IFF( unclean_identity_document_verified_activities.company_id IS NULL, 1, 0) AS is_data_cleansing_generate_row,
|
||||
'identity_document_verified' AS activity,
|
||||
4 AS activtity_rank,
|
||||
IFNULL( unclean_identity_document_verified_activities.activity_datetime , first_time_booking_activities.activity_datetime ) AS activity_datetime
|
||||
IFNULL( unclean_identity_documents_verified_activities.company_id , first_time_booking_activities.company_id ) AS company_id,
|
||||
IFF( unclean_identity_documents_verified_activities.company_id IS NULL, 1, 0) AS is_data_cleansing_generate_row,
|
||||
'identity_documents_verified' AS activity,
|
||||
IFNULL( unclean_identity_documents_verified_activities.activity_datetime , first_time_booking_activities.activity_datetime ) AS activity_datetime
|
||||
|
||||
FROM
|
||||
(
|
||||
|
||||
SELECT
|
||||
company_id,
|
||||
'identity_document_verified' AS activity,
|
||||
'identity_documents_verified' AS activity,
|
||||
MIN(identity_created_datetime) AS activity_datetime
|
||||
|
||||
FROM company_identity_documents
|
||||
@@ -197,28 +191,27 @@ identity_document_verified_activities AS (
|
||||
GROUP BY
|
||||
company_id
|
||||
|
||||
) AS unclean_identity_document_verified_activities
|
||||
) AS unclean_identity_documents_verified_activities
|
||||
|
||||
|
||||
FULL OUTER JOIN first_time_booking_activities
|
||||
ON (unclean_identity_document_verified_activities.company_id = first_time_booking_activities.company_id)
|
||||
ON (unclean_identity_documents_verified_activities.company_id = first_time_booking_activities.company_id)
|
||||
|
||||
),
|
||||
|
||||
identity_document_uploaded_activities AS (
|
||||
identity_documents_uploaded_activities AS (
|
||||
SELECT
|
||||
IFNULL( unclean_identity_document_uploaded_activities.company_id , identity_document_verified_activities.company_id ) AS company_id,
|
||||
IFF( unclean_identity_document_uploaded_activities.company_id IS NULL, 1, 0) AS is_data_cleansing_generate_row,
|
||||
'identity_document_uploaded' AS activity,
|
||||
3 AS activtity_rank,
|
||||
IFNULL( unclean_identity_document_uploaded_activities.activity_datetime , identity_document_verified_activities.activity_datetime ) AS activity_datetime
|
||||
IFNULL( unclean_identity_documents_uploaded_activities.company_id , identity_documents_verified_activities.company_id ) AS company_id,
|
||||
IFF( unclean_identity_documents_uploaded_activities.company_id IS NULL, 1, 0) AS is_data_cleansing_generate_row,
|
||||
'identity_documents_uploaded' AS activity,
|
||||
IFNULL( unclean_identity_documents_uploaded_activities.activity_datetime , identity_documents_verified_activities.activity_datetime ) AS activity_datetime
|
||||
|
||||
FROM
|
||||
(
|
||||
|
||||
SELECT
|
||||
company_id,
|
||||
'identity_document_uploaded' AS activity,
|
||||
'identity_documents_uploaded' AS activity,
|
||||
MIN(identity_created_datetime) AS activity_datetime
|
||||
|
||||
FROM company_identity_documents
|
||||
@@ -226,20 +219,19 @@ identity_document_uploaded_activities AS (
|
||||
GROUP BY
|
||||
company_id
|
||||
|
||||
) AS unclean_identity_document_uploaded_activities
|
||||
) AS unclean_identity_documents_uploaded_activities
|
||||
|
||||
|
||||
FULL OUTER JOIN identity_document_verified_activities
|
||||
ON (unclean_identity_document_uploaded_activities.company_id = identity_document_verified_activities.company_id)
|
||||
FULL OUTER JOIN identity_documents_verified_activities
|
||||
ON (unclean_identity_documents_uploaded_activities.company_id = identity_documents_verified_activities.company_id)
|
||||
),
|
||||
|
||||
email_verified_activities AS (
|
||||
SELECT
|
||||
IFNULL( unclean_email_verified_activities.company_id , identity_document_uploaded_activities.company_id ) AS company_id,
|
||||
IFNULL( unclean_email_verified_activities.company_id , identity_documents_uploaded_activities.company_id ) AS company_id,
|
||||
IFF( unclean_email_verified_activities.company_id IS NULL, 1, 0) AS is_data_cleansing_generate_row,
|
||||
'email_verified' AS activity,
|
||||
2 AS activtity_rank,
|
||||
IFNULL( unclean_email_verified_activities.activity_datetime , identity_document_uploaded_activities.activity_datetime ) AS activity_datetime
|
||||
IFNULL( unclean_email_verified_activities.activity_datetime , identity_documents_uploaded_activities.activity_datetime ) AS activity_datetime
|
||||
|
||||
FROM
|
||||
(
|
||||
@@ -257,8 +249,8 @@ email_verified_activities AS (
|
||||
company_id
|
||||
) AS unclean_email_verified_activities
|
||||
|
||||
FULL OUTER JOIN identity_document_uploaded_activities
|
||||
ON (unclean_email_verified_activities.company_id = identity_document_uploaded_activities.company_id)
|
||||
FULL OUTER JOIN identity_documents_uploaded_activities
|
||||
ON (unclean_email_verified_activities.company_id = identity_documents_uploaded_activities.company_id)
|
||||
|
||||
),
|
||||
|
||||
@@ -267,7 +259,6 @@ register_activities AS (
|
||||
IFNULL( unclean_register_activities.company_id , email_verified_activities.company_id ) AS company_id,
|
||||
IFF( unclean_register_activities.company_id IS NULL, 1, 0) AS is_data_cleansing_generate_row,
|
||||
'register' AS activity,
|
||||
1 AS activtity_rank,
|
||||
IFNULL( unclean_register_activities.activity_datetime , email_verified_activities.activity_datetime ) AS activity_datetime
|
||||
|
||||
FROM
|
||||
@@ -319,30 +310,24 @@ union_all_activities_flag_migrated_company AS (
|
||||
|
||||
--FINAL
|
||||
|
||||
sem_exchange__company_conversion_funnels AS (
|
||||
sem_exchange__company_funnels AS (
|
||||
SELECT
|
||||
company_id,
|
||||
is_data_cleansing_generate_row,
|
||||
is_migrated_company,
|
||||
activity,
|
||||
activtity_rank,
|
||||
IFF( ROW_NUMBER() OVER (PARTITION BY company_id ORDER BY activtity_rank DESC) = 1,
|
||||
1,
|
||||
0) AS latest_activity,
|
||||
|
||||
activity_datetime,
|
||||
|
||||
{% for activity_type in funnel_activity %}
|
||||
{% for activity in funnel_activity %}
|
||||
|
||||
count(iff(activity = '{{activity_type}}', company_id, NULL))
|
||||
OVER (ORDER BY activity_datetime) AS cumulative_{{activity_type}}_activity,
|
||||
count(iff(activity = '{{activity}}', company_id, NULL))
|
||||
OVER (ORDER BY activity_datetime) AS cumulative_{{activity}}_activity,
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% for activity_type in funnel_activity %}
|
||||
{% for activity in funnel_activity %}
|
||||
|
||||
count(iff(activity = '{{activity_type}}' AND is_migrated_company = 0, company_id, NULL))
|
||||
OVER (ORDER BY activity_datetime) AS exclude_migrated_cumulative_{{activity_type}}_activity,
|
||||
count(iff(activity = '{{activity}}' AND is_migrated_company = 0, company_id, NULL))
|
||||
OVER (ORDER BY activity_datetime) AS exclude_migrated_cumulative_{{activity}}_activity,
|
||||
|
||||
{% endfor %}
|
||||
|
||||
@@ -353,4 +338,4 @@ sem_exchange__company_conversion_funnels AS (
|
||||
ORDER BY activity_datetime
|
||||
)
|
||||
|
||||
SELECT * FROM sem_exchange__company_conversion_funnels
|
||||
SELECT * FROM sem_exchange__company_funnels
|
||||
Reference in New Issue
Block a user