164 lines
8.5 KiB
SQL
164 lines
8.5 KiB
SQL
|
|
--------------------------Reseller Business metrics--------------------------
|
|
|
|
Drop table if exists public.om_app_installed_reseller_business_metrics_db
|
|
create table public.om_app_installed_reseller_business_metrics_db
|
|
as
|
|
select App_install_date_1 as App_install_date,profile_objectid,profile_phone,profile_email,User_id,tier,flag,r_f,R
|
|
from (
|
|
select distinct a.*,coalesce(b.tier,'Not Present') as tier,case when b.profile_phone isnull then 'New'
|
|
when App_install_date_1 >= app_install_date and App_install_date_1 < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag,
|
|
row_number() over (partition by User_id,date_trunc('month', App_install_date_1) - interval '0 month'
|
|
order by date_trunc('month', App_install_date_1) - interval '0 month') as R_f,
|
|
row_number() over (partition by User_id order by App_install_date_1) as R
|
|
from (
|
|
select distinct cast(left(ts,4) || '-' || right(left(ts,6),2) || '-' || right(left(ts,8),2) as date) as App_install_date_1,
|
|
profile_objectid,profile_phone,profile_email,case when profile_phone=' ' then profile_objectid else profile_phone end as user_id
|
|
--coalesce(profile_phone,profile_objectid) as User_id
|
|
from clevertap.app_installed
|
|
) a
|
|
left join om_New_Existing_flag b on a.profile_phone=b.profile_phone and b.r_flag=1
|
|
) where R_f=1
|
|
|
|
--order table creation
|
|
Drop table if exists public.om_order_reseller_business_metrics_db
|
|
create table public.om_order_reseller_business_metrics_db
|
|
as
|
|
select distinct a.*,coalesce(b.tier,'Not Present') as tier,case when b.profile_phone isnull then 'New'
|
|
when created_at >= app_install_date and created_at < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag
|
|
from (
|
|
select a.*,b.shipping_to
|
|
from
|
|
(
|
|
select replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') as mobile,cast(created_at as date) as created_at
|
|
,count(distinct id) as order_id,sum(payment_amount) as payment_amount
|
|
from raena_order_management.order
|
|
where payment_status='Paid' and cast(is_archived as varchar)='false'
|
|
group by 1,2
|
|
) a
|
|
left join
|
|
(
|
|
select distinct replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') as mobile,
|
|
row_number() over (partition by replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') order by shipping_to) as R_asc
|
|
,shipping_to
|
|
from raena_order_management.order
|
|
where payment_status='Paid' and cast(is_archived as varchar)='false'
|
|
) b on a.mobile=b.mobile and b.R_asc=1
|
|
) a
|
|
left join om_New_Existing_flag b on a.mobile=b.profile_phone and b.r_flag=1
|
|
|
|
|
|
|
|
--app_uninstalled table creation
|
|
Drop table if exists public.om_app_uninstalled_reseller_business_metrics_db
|
|
create table public.om_app_uninstalled_reseller_business_metrics_db
|
|
as
|
|
select * from (
|
|
select distinct a.*,coalesce(b.tier,'Not Present') as tier,case when b.profile_phone isnull then 'New'
|
|
when app_uninstall_date >= app_install_date and app_uninstall_date < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag,
|
|
row_number() over (partition by User_id,date_trunc('month', App_uninstall_date) - interval '0 month'
|
|
order by date_trunc('month', App_uninstall_date) - interval '0 month') as R_f
|
|
from (
|
|
select distinct cast(left(ts,4) || '-' || right(left(ts,6),2) || '-' || right(left(ts,8),2) as date) as App_uninstall_date,
|
|
profile_phone,profile_objectid as Uninstall_profile_objectid ,case when profile_phone=' ' then profile_objectid else profile_phone end as user_id
|
|
from clevertap.app_uninstalled
|
|
) a
|
|
left join om_New_Existing_flag b on a.profile_phone=b.profile_phone and b.r_flag=1
|
|
) where R_f=1
|
|
|
|
--app launched
|
|
Drop table if exists public.om_app_launched_reseller_business_metrics_db
|
|
create table public.om_app_launched_reseller_business_metrics_db
|
|
as
|
|
select * from (
|
|
select distinct a.*,coalesce(b.tier,'Not Present') as tier,case when b.profile_phone isnull then 'New'
|
|
when App_launch_date >= app_install_date and App_launch_date < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag,
|
|
row_number() over (partition by User_id,date_trunc('month', App_launch_date) - interval '0 month'
|
|
order by date_trunc('month', App_launch_date) - interval '0 month') as R_f,
|
|
row_number() over (partition by User_id order by App_launch_date) as R
|
|
from (
|
|
select distinct cast(left(ts,4) || '-' || right(left(ts,6),2) || '-' || right(left(ts,8),2) as date) as App_launch_date,
|
|
profile_phone,profile_objectid as launch_profile_objectid ,case when profile_phone=' ' then profile_objectid else profile_phone end as user_id
|
|
from clevertap.app_launched
|
|
) a
|
|
left join om_New_Existing_flag b on a.profile_phone=b.profile_phone and b.r_flag=1
|
|
) where R_f=1
|
|
|
|
--view
|
|
Drop table if exists public.om_product_view_reseller_business_metrics_db
|
|
create table public.om_product_view_reseller_business_metrics_db
|
|
as
|
|
select * from (
|
|
select distinct a.*,coalesce(b.tier,'Not Present') as tier,case when b.profile_phone isnull then 'New'
|
|
when App_view_date >= app_install_date and App_view_date < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag,
|
|
row_number() over (partition by User_id,date_trunc('month', App_view_date) - interval '0 month'
|
|
order by date_trunc('month', App_view_date) - interval '0 month') as R_f
|
|
from(
|
|
select distinct cast(left(ts,4) || '-' || right(left(ts,6),2) || '-' || right(left(ts,8),2) as date) as App_view_date,
|
|
profile_objectid as view_object_id,profile_phone,profile_email,case when profile_phone=' ' then profile_objectid else profile_phone end as user_id
|
|
from clevertap.view_item vi
|
|
union
|
|
select distinct cast(left(ts,4) || '-' || right(left(ts,6),2) || '-' || right(left(ts,8),2) as date) as App_view_date,
|
|
profile_objectid as view_object_id,profile_phone,profile_email,case when profile_phone=' ' then profile_objectid else profile_phone end as user_id
|
|
from clevertap.view_cart vi
|
|
) a
|
|
left join om_New_Existing_flag b on a.profile_phone=b.profile_phone and b.r_flag=1
|
|
) where R_f=1
|
|
|
|
--view conversion
|
|
Drop table if exists public.om_order_reseller_business_metrics_db_view_conversion
|
|
create table public.om_order_reseller_business_metrics_db_view_conversion
|
|
as
|
|
select distinct a.*,coalesce(b.tier,'Not Present') as tier,case when b.profile_phone isnull then 'New'
|
|
when created_at >= app_install_date and created_at < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag
|
|
from (
|
|
select a.*,b.shipping_to
|
|
from
|
|
(
|
|
select distinct replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') as mobile,cast(created_at as date) as created_at
|
|
,ID as order_id, payment_amount
|
|
from raena_order_management.order
|
|
where payment_status='Paid' and cast(is_archived as varchar)='false'
|
|
) a
|
|
left join
|
|
(
|
|
select distinct replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') as mobile,
|
|
row_number() over (partition by replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') order by shipping_to) as R_asc
|
|
,shipping_to
|
|
from raena_order_management.order
|
|
where payment_status='Paid' and cast(is_archived as varchar)='false'
|
|
) b on a.mobile=b.mobile and b.R_asc=1
|
|
) a
|
|
left join om_New_Existing_flag b on a.mobile=b.profile_phone and b.r_flag=1
|
|
|
|
--Sku order/--Unique sku
|
|
Drop table if exists public.om_sku_reseller_business_metrics_db
|
|
create table public.om_sku_reseller_business_metrics_db
|
|
as
|
|
select a.*,coalesce(b.tier,'Not Present') as tier,case when b.profile_phone isnull then 'New'
|
|
when created_at >= app_install_date and created_at < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag
|
|
from (
|
|
select distinct replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') as mobile,cast(oi.created_at as date) as created_at,
|
|
sku
|
|
from raena_order_management.order_item oi
|
|
inner join raena_order_management.order o on oi.order_id=o.id
|
|
where o.payment_status='Paid' and cast(o.is_archived as varchar)='false'
|
|
--and replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') !=' '
|
|
) a
|
|
left join om_New_Existing_flag b on a.mobile=b.profile_phone and b.r_flag=1
|
|
|
|
Drop table if exists public.OM_Post_disc_reseller_business_db
|
|
create table OM_Post_disc_reseller_business_db
|
|
as
|
|
select transaction_date,coalesce(b.tier,'Not Present') as tier,
|
|
case when b.profile_phone isnull then 'New'
|
|
when transaction_date >= app_install_date and transaction_date < cast(dateadd(day,30,app_install_date) as date) then 'New' else 'Existing' end as flag,
|
|
sum(quantity) as quantity,sum(discounted_price) as discounted_price,sum(cogs) as cogs
|
|
from OM_GM_DB_Product_category a
|
|
left join om_New_Existing_flag b
|
|
on replace(a.reseller_mobile,'+','')=b.profile_phone
|
|
and b.R_flag=1
|
|
group by 1,2,3
|
|
|
|
|