#!/bin/bash echo -e " \n----------- DB Funnel New Users Metabase Dashboard Code --------------\n" echo " --------------------------DB Funnel New Users-------------------------- Drop table if exists om_clevertap_install_jan_may create table om_clevertap_install_jan_may as select App_install_date,email,phone,user_id from ( select *,row_number() over (partition by user_id order by app_install_date) as R from ( SELECT '2022-04-01' as App_install_date,email,phone,email as user_id FROM public.clevertap_april_csv union SELECT '2022-03-30' as App_install_date,email,phone,email as user_id FROM public.clevertap_march_csv where phone not in (select distinct profile_phone from clevertap.app_installed) union select cast(left(ts,4) || '-' || right(left(ts,6),2) || '-' || right(left(ts,8),2) as date) as App_install_date,profile_email,profile_phone, case when profile_email=' ' then profile_objectid else profile_email end as user_id from clevertap.app_installed ) ) where R=1 Drop table if exists om_clevertap_install_jan_may_2 create table om_clevertap_install_jan_may_2 as select user_id,email,phone,to_char(app_install_date,'month') as month,date_part(day,app_install_date) as day,address_line1,address_line2,city,province,app_install_date from ( select a.user_id,a.email,phone,case when app_install_date='2022-03-30' or app_install_date='2022-04-01' then cast(created_at as date) else app_install_date end as app_install_date, b.address_line1,address_line2,city,province from om_clevertap_install_jan_may a left join ( select mobile,email,created_at,address_line1,address_line2,city,province from ( select email,replace(mobile,'+','') as mobile,created_at,address_line1,address_line2,city,province, row_number() over (partition by email order by created_at) as R from raena_user_management.user ) where R=1 and email notnull) b on a.email=b.email ) Drop table if exists om_clevertap_install_jan_may_3 create table om_clevertap_install_jan_may_3 as select a.*,cast(b.created_at as date) as transaction_date,transacted_email --case when cast(b.created_at as date) isnull then 'Never transacted' --when cast(b.created_at as date)>=app_install_date and cast(b.created_at as date)<=cast(dateadd(day,30,app_install_date) as date) then 'Yes' else 'No' end as transacted_flag from om_clevertap_install_jan_may_2 a left join (select json_extract_path_text(reseller_info,'email',TRUE) as transacted_email ,min(created_at) as created_at from raena_order_management.order where payment_status='Paid' and cast(is_archived as varchar)='false' group by 1 ) b on a.email=transacted_email Drop table if exists om_clevertap_install_jan_may_final create table om_clevertap_install_jan_may_final as select *,case when email notnull and rtrim(ltrim(email)) != '' then 'Yes' else 'No' end as email_flag, case when phone notnull and rtrim(ltrim(phone)) != '' then 'Yes' else 'No' end as phone_flag, case when address_line1 notnull and rtrim(ltrim(address_line1)) != '' then 'Yes' else 'No' end as address_flag, case when transacted_email notnull and rtrim(ltrim(transacted_email)) != '' and transaction_date>=app_install_date and transaction_date<=cast(dateadd(day,30,app_install_date) as date) then 'Yes' else 'No' end as transacted_flag from om_clevertap_install_jan_may_3 --order data Drop table if exists om_clevertap_install_jan_may_order create table om_clevertap_install_jan_may_order as select * from om_clevertap_install_jan_may_final where transacted_email notnull and rtrim(ltrim(transacted_email)) != '' --launch Drop table if exists public.om_app_launched_db_funnel create table public.om_app_launched_db_funnel as select * from ( select distinct b.app_install_date,a.App_launch_date,a.user_id, case when b.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 'Yes' else 'No' end as flag, row_number() over (partition by a.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_email=' ' then profile_objectid else profile_email end as user_id from clevertap.app_launched ) a inner join om_clevertap_install_jan_may_final b on a.user_id=b.user_id ) where flag='Yes' order by user_id " > /home/ec2-user/cronjob/demandForecasting/db_funnel_code.sql psql "host=raen-prd-sg-redshift-cluster.cdqj58hfx4p7.ap-southeast-1.redshift.amazonaws.com user=dbadmin dbname=analytics port=5439 password=5qCif6eyY3Kmg4z"-f /home/ec2-user/cronjob/new_users/db_funnel_code.sql > dbfunnel_Metabase.log