#!/bin/bash echo " --------------------------Revenue Leakage ------------------------- drop table if exists om_brand_type_last_month; create table om_brand_type_last_month as select distinct brand_name, case when brand_name in ('HISTOIRE NATURELLE','INGRID','W DRESSROOM','FORENCOS','DEWYCEL','GLUTANEX','BELLFLOWER','ONE THING','BEAUSTA') then 'EL\/PL' else 'NA' end as "EL\/PL Type", case when After_discount_GM <= '5.00' then 'offender 1' when After_discount_GM between 5 and 10 then 'offender 2' when After_discount_GM between 10 and 20 then 'DDB1' when After_discount_GM between 20 and 30 then 'DDB2' when After_discount_GM > 30 then 'DDB3' else 'NA' end as brand_type from ( select brand_name , cast((sum((quantity*discounted_price)-(cogs*quantity))*100/sum(quantity*discounted_price)) as decimal(10,4)) as After_discount_GM from OM_GM_DB_Product_category where date_part('month',transaction_date)=EXTRACT(month FROM CURRENT_DATE - '1 month'::interval) and date_part('year',transaction_date)=EXTRACT(year FROM CURRENT_DATE - '1 month'::interval) group by 1 ) order by 2; drop table if exists om_seller_type_last_month; create table om_seller_type_last_month as select reseller_email,case when After_discount_GM between 0 and 10.00 then 'Single digit Seller' when After_discount_GM >= 10.00 then 'Double Digit Seller' else 'NA' end as Seller_type from ( select reseller_email, cast((sum((quantity*discounted_price)-(cogs*quantity))*100/sum(quantity*discounted_price)) as decimal(10,4)) as After_discount_GM from OM_GM_DB_Product_category where date_part('month',transaction_date)=EXTRACT(month FROM CURRENT_DATE - '1 month'::interval) and date_part('year',transaction_date)=EXTRACT(year FROM CURRENT_DATE - '1 month'::interval) and reseller_email notnull group by 1 ); drop table if exists om_seller_type_last_month_10M; create table om_seller_type_last_month_10M as select distinct reseller_email,case when Last_month_rev > 10000000 then 'REV GT 10M' else 'REV LT 10M' end as Last_Month_Rev_Flag from ( select reseller_email,sum(Payment_Price) Last_month_rev from GM_GROWTH_TAB1 where date_part('month',created_date)=EXTRACT(month FROM CURRENT_DATE - '1 month'::interval) and date_part('year',created_date)=EXTRACT(year FROM CURRENT_DATE - '1 month'::interval) and GM_GROWTH_TAB1.brand_name!='All' and reseller_email notnull group by 1 ) ; drop table if exists om_sku_weighted_avg; create table om_sku_weighted_avg as select sku,sum(Numerator)/sum(quantity) as Weighted_avg from ( select sku,(effective_wholesale_price)*quantity as Numerator,quantity, row_number() over (partition by sku order by created_date desc) as R,cast(created_date as date) from ( select sso.product_class,parent_sku as sku,sso.effective_wholesale_price,sso.quantity,cast(sso.created_at as date) as created_date from raena_order_management.sales_sub_order sso where price_type='NEGOTIATED_PRICE' --and sku='AVS019' ) ) where R<=5 group by 1 order by 1; drop table if exists public.om_dormant_sellers_filter_base; create table public.om_dormant_sellers_filter_base as select distinct a.reseller_email,flag_3,flag_2,flag_1,flag_0 from ( select distinct "email\ id" as reseller_email from AM_REVENUE_LEAKAGE_LIST inner join raena_user_management.user b on AM_REVENUE_LEAKAGE_LIST."email\ id" = b.email left join GM_GROWTH_TAB1 on GM_GROWTH_TAB1.reseller_email=AM_REVENUE_LEAKAGE_LIST."email\ id" ) a left join ( select distinct reseller_email,'MTD' as flag_0 from GM_GROWTH_TAB1 where cast(created_date as date)>= cast(date_add('month', 0, date_trunc('month', current_date)) as date) and GM_GROWTH_TAB1.brand_name!='All' order by 1 ) h on a.reseller_email=h.reseller_email left join ( select distinct reseller_email,'one_month' as flag_1 from GM_GROWTH_TAB1 where cast(created_date as date)>= cast(date_add('month', -1, date_trunc('month', current_date)) as date) and cast(created_date as date)<= cast(date_add('month', 0, date_trunc('month', current_date)) as date) and GM_GROWTH_TAB1.brand_name!='All' order by 1 ) b on a.reseller_email=b.reseller_email left join ( select distinct reseller_email,'2nd_month' as flag_2 from GM_GROWTH_TAB1 where cast(created_date as date)>= cast(date_add('month', -3, date_trunc('month', current_date)) as date) and cast(created_date as date)<= cast(date_add('month', 0, date_trunc('month', current_date)) as date) and GM_GROWTH_TAB1.brand_name!='All' order by 1 ) c on a.reseller_email=c.reseller_email left join ( select distinct reseller_email,'3rd_month' as flag_3 from GM_GROWTH_TAB1 where cast(created_date as date)>= cast(date_add('month', -6, date_trunc('month', current_date)) as date) and cast(created_date as date)<= cast(date_add('month', 0, date_trunc('month', current_date)) as date) and GM_GROWTH_TAB1.brand_name!='All' order by 1 ) d on a.reseller_email=d.reseller_email; drop table if exists public.om_dormant_sellers_filter; create table public.om_dormant_sellers_filter as select distinct reseller_email,Dornant_flag from ( select distinct reseller_email, case when flag_3 is null then 'M-6' end as Dornant_flag from public.om_dormant_sellers_filter_base union select distinct reseller_email, case when flag_2 is null then 'M-3' end as Dornant_flag from public.om_dormant_sellers_filter_base union select distinct reseller_email, case when flag_1 is null then 'M-1' end as Dornant_flag from public.om_dormant_sellers_filter_base union select distinct reseller_email, case when flag_0 is null then 'MTD' end as Dornant_flag from public.om_dormant_sellers_filter_base union select distinct reseller_email, case when flag_3 is null and flag_2 is null and flag_1 is null and flag_0 is null then 'Never Transacted in Last 6 Months' end as Dornant_flag from public.om_dormant_sellers_filter_base ) --where reseller_email='ziyyags@gmail.com' order by 1; " > /home/ec2-user/cronjob/AM_ACQ/AM_dashboard.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/AM_ACQ/AM_dashboard.sql > AM_Dashboard.log