#!/bin/bash echo -e " \n----------- ACCEPTING NUMBER OF DAYS BEFORE THE RUN DATE FOR WHICH THE REPORT IS TO BE RUN --------------\n" backDay=$1 echo $backDay echo -e " \n------------- DATE IN THE REQUIRED FORMAT --------------\n" reportDate=$(date -d"$backDay day ago" "+%Y-%m-%d") date echo 'reportDate'=$reportDate echo " DROP TABLE IF EXISTS raena_analytics.Am_dashbaord_base1_table; CREATE TABLE raena_analytics.Am_dashbaord_base1_table AS SELECT A.external_id , transaction_date::date transaction_date, reseller_email, reseller_id, customer_type , coupon_code, brand_name , A.sku, order_placed_by , retail_price , seller_margin , sum(discounted_price) discounted_price, SUM(quantity) quantity , cogs, sum(CASE WHEN A.external_id = B.order_id AND A.sku = B.sku AND (CASE WHEN item_type LIKE '%Bundle%' THEN 'Bundle' ELSE 'Product' END)=B.product_class THEN B.new_shipment_amount ELSE C.new_shipment_amount END) Shipping_amount, shipping_province, province FROM raena_analytics.gm_dashboard A LEFT JOIN raena_analytics.sku_level_shipping_fee_final B ON A.external_id = B.order_id AND A.sku = B.sku AND (CASE WHEN item_type LIKE '%Bundle%' THEN 'Bundle' ELSE 'Product' END)=B.product_class LEFT JOIN raena_analytics.sku_level_shipping_fee_old_final C ON A.external_id = C.external_id AND A.sku = C.sku AND (CASE WHEN item_type LIKE '%Bundle%' THEN 'Bundle' ELSE 'Product' END)=C.product_class LEFT JOIN (SELECT id , province FROM raena_user_management.user WHERE province IS NOT NULL) D ON A.reseller_id = cast(D.id AS varchar) WHERE transaction_date::date BETWEEN CURRENT_DATE-interval'6 months' AND CURRENT_DATE AND reseller_id IS NOT NULL GROUP BY A.external_id , transaction_date::date, reseller_id, reseller_email, customer_type , coupon_code, brand_name , A.sku, order_placed_by , coupon_code , retail_price , seller_margin, cogs, shipping_province, province; DROP TABLE IF EXISTS raena_analytics.brand_type_base_table ; CREATE TABLE raena_analytics.brand_type_base_table AS SELECT brand_name, CASE WHEN post_discount_gm<5 THEN 'Offender1' WHEN post_discount_gm BETWEEN 5 AND 9.99999 THEN 'Offender2' WHEN post_discount_gm BETWEEN 10 AND 19.99999 THEN 'DDB1' WHEN post_discount_gm BETWEEN 20 AND 29.99999 THEN 'DDB2' WHEN post_discount_gm>30 THEN 'DDB3' ELSE 'EL/PL' END brand_type, CASE WHEN post_discount_gm <10 THEN 'SDS' ELSE 'DDS' END seller_type FROM (SELECT brand_name , cast((sum((discounted_price*quantity)-(cogs*quantity))*100)/sum(CASE WHEN discounted_price<>0 THEN discounted_price*quantity END) AS decimal(10,4)) post_discount_gm FROM raena_analytics.Am_dashbaord_base1_table GROUP BY 1) A; DROP TABLE IF EXISTS raena_analytics.Am_dashbaord_base2_table; CREATE TABLE raena_analytics.Am_dashbaord_base2_table AS SELECT A.* , B.brand_type, B.seller_type, C.max_td_date, concat('M-',cast((date_part('year',CURRENT_DATE)-date_part('year',max_td_date))*12+(date_part('Month',CURRENT_DATE)-date_part('Month',max_td_date)) AS varchar)) dom FROM raena_analytics.Am_dashbaord_base1_table A LEFT JOIN raena_analytics.brand_type_base_table B ON A.brand_name = B.brand_name LEFT JOIN (SELECT reseller_id, max(transaction_date::date) max_td_date FROM raena_analytics.gm_dashboard gd GROUP BY 1) C ON A.reseller_id = C.reseller_id ; DROP TABLE if exists raena_analytics.dormant_reseller_base; CREATE TABLE raena_analytics.dormant_reseller_base AS SELECT DISTINCT reseller_id, CASE WHEN Dom = 'M-0' THEN 0 END \"M-0\" , CASE WHEN Dom = 'M-1' THEN 1 END \"M-1\", CASE WHEN Dom = 'M-2' THEN 1 END \"M-2\", CASE WHEN Dom = 'M-3' THEN 1 END \"M-3\", CASE WHEN Dom = 'M-4' THEN 1 END \"M-4\", CASE WHEN Dom = 'M-5' THEN 1 END \"M-5\" , CASE WHEN Dom = 'M-6' THEN 1 END \"M-6\" FROM raena_analytics.Am_dashbaord_base2_table; UPDATE raena_analytics.dormant_reseller_base SET \"M-5\" = 1 WHERE \"M-6\" = 1; UPDATE raena_analytics.dormant_reseller_base SET \"M-4\" = 1 WHERE \"M-5\" = 1; UPDATE raena_analytics.dormant_reseller_base SET \"M-3\" = 1 WHERE \"M-4\" = 1; UPDATE raena_analytics.dormant_reseller_base SET \"M-2\" = 1 WHERE \"M-3\" = 1; UPDATE raena_analytics.dormant_reseller_base SET \"M-1\" = 1 WHERE \"M-2\" = 1; UPDATE raena_analytics.dormant_reseller_base SET \"M-0\" = 1 WHERE \"M-1\" = 1; DROP TABLE IF EXISTS raena_analytics.final_dormant_base; CREATE TABLE raena_analytics.final_dormant_base AS SELECT reseller_id, 'M-0' dormant FROM raena_analytics.dormant_reseller_base WHERE \"M-0\" =1 UNION ALL SELECT reseller_id, 'M-1' dormant FROM raena_analytics.dormant_reseller_base WHERE \"M-1\" =1 UNION ALL SELECT reseller_id, 'M-2' dormant FROM raena_analytics.dormant_reseller_base WHERE \"M-2\" =1 UNION ALL SELECT reseller_id, 'M-3' dormant FROM raena_analytics.dormant_reseller_base WHERE \"M-3\" =1 UNION ALL SELECT reseller_id, 'M-4' dormant FROM raena_analytics.dormant_reseller_base WHERE \"M-4\" =1 UNION ALL SELECT reseller_id, 'M-5' dormant FROM raena_analytics.dormant_reseller_base WHERE \"M-5\" =1 UNION ALL SELECT reseller_id, 'M-6' dormant FROM raena_analytics.dormant_reseller_base WHERE \"M-6\" =1; " > /home/ec2-user/cronjob/redshift/sql_code/am_dashboard.sql psql "host=redshift-cluster-1.cdqj58hfx4p7.ap-southeast-1.redshift.amazonaws.com user=dbadmin dbname=analytics port=5439 password=5qCif6eyY3Kmg4z" -f /home/ec2-user/cronjob/redshift/sql_code/am_dashboard.sql