--------------------------------------------------------------------------------
    -----------------------------------   BASE CAMPANIA 0
    --------------------------------------------------------------------------------
    DROP TABLE IF EXISTS d_mdl_vpc_disc.STAGE_HM_BASE_CAMPANIA
    
    CREATE TABLE d_mdl_vpc_disc.STAGE_HM_BASE_CAMPANIA
    WITH ( format = 'Parquet', 
             parquet_compression = 'SNAPPY', 
             partitioned_by = ARRAY['p_periodo'],
             external_location= 's3://sagemaker-us-east-1-058528764918/vpc/aceptacion/athena_2/STAGE_HM_BASE_CAMPANIA/'
           )
    AS (           
     SELECT   D.periodo_campania, 
               substr(replace(substr(cast(date_add('month', -1, date_parse(D.periodo_campania ,'%Y%m')) as varchar), 1, 10), '-', ''), 1, 6) periodo_ejecucion,
               D.NUM_RUC, D.flg_nuevos_ap, D.flg_nuevos_pre, D.flg_nuevos_ecosistemas, D.oferta, RR.oferta oferta_rr , D.plazo, D.bucket,
               D.flg_canal_b, D.flg_canal_c, D.tasa*100 tasa, D.tasa_piso*100 tasa_piso,
               RR.flg_nuevos_ap flg_nuevos_ap_rr, RR.flg_nuevos_pre flg_nuevos_pre_rr, RR.flg_nuevos_ecosistemas flg_nuevos_ecosistemas_rr, 
               RR.bucket bucket_rr, 
               CASE WHEN RR.bucket is not null then RR.bucket
                    WHEN D.bucket <> &#039;&#039; then CAST(D.bucket AS INT)
                    ELSE NULL END bucket_completado,
               RR.tasapiso_redondeado tasapiso_rr,
               CASE WHEN D.tasa_piso is null THEN RR.tasapiso_redondeado else D.tasa_piso*100 END tasa_piso_completada,
               CASE WHEN D.tasa_piso is null THEN RR.tasapiso_redondeado 
                    WHEN RR.tasapiso_redondeado is not null and RR.tasapiso_redondeado > D.tasa_piso*100 THEN RR.tasapiso_redondeado 
                    WHEN RR.tasapiso_redondeado is not null and RR.tasapiso_redondeado < D.tasa_piso*100 THEN D.tasa_piso*100 
                    ELSE D.tasa_piso*100 END tasa_piso_completada_mayor,
               CASE WHEN D.oferta is null THEN RR.oferta else D.oferta END oferta_completada,
               CASE WHEN D.oferta is null THEN RR.oferta 
                    WHEN RR.oferta is not null AND RR.oferta > D.oferta THEN RR.oferta 
                    WHEN RR.oferta is not null AND RR.oferta < D.oferta THEN D.oferta
                    ELSE D.oferta END oferta_completada_mayor,
               CASE WHEN D.flg_nuevos_ecosistemas = 1 THEN &#039;ECOSISTEMAS&#039;
                    WHEN D.flg_nuevos_ap = 1 THEN &#039;NUEVOS AP&#039;
                    WHEN D.flg_nuevos_pre = 1 THEN &#039;NUEVOS PRE&#039;
                    ELSE &#039;X&#039; END campania_priorizada,
               C.FLG_NPRE, C.FLG_NPRE_ACTIVO, C.FLG_NAP, C.FLG_NAP_ACTIVO,  C.FLG_ECO, C.FLG_ECO_ACTIVO,
               CASE WHEN COALESCE(C.FLG_ACEPTA_VPCONNECT,0) = 1 OR COALESCE(CC.flg_desembolso_nuevos, 0) = 1 then 1 else 0 end flg_acepta_vpconnect_completado,
               COALESCE(C.FLG_ACTIVO, 0) FLG_ACTIVO, 
               CASE WHEN D.NUM_RUC IS NOT NULL THEN 1 ELSE 0 END FLG_RIESGOS,
               --CASE WHEN CALC.empresa_id  IS NOT NULL THEN 1 ELSE 0 END FLG_CALCULADORA,
               COALESCE(C.FLG_CE_VPCONNECT,0) FLG_CE_VPCONNECT,
               COALESCE(C.FLG_ACEPTA_VPCONNECT,0) FLG_ACEPTA_VPCONNECT,
               COALESCE(C.FLG_ACEPTA_VISITA_VPCONNECT,0) FLG_ACEPTA_VISITA_VPCONNECT,
               COALESCE(C.FLG_LO_PENSARA_VPCONNECT,0) FLG_LO_PENSARA_VPCONNECT,
               COALESCE(C.FLG_DESISTIO_VPCONNECT,0) FLG_DESISTIO_VPCONNECT,
               COALESCE(C.FLG_NO_ACEPTA_VPCONNECT,0) FLG_NO_ACEPTA_VPCONNECT,
               COALESCE(C.FLG_NO_CALIFICA_VPCONNECT,0)  FLG_NO_CALIFICA_VPCONNECT,
               CASE WHEN COALESCE(C.FLG_CE_VPCONNECT,0) = 1 OR (COALESCE(TT.flg_ce, 0) = 1 AND TT.FLG_CREDITOS_NUEVOS_BPE = 1)THEN 1 ELSE 0 END FLG_CE_NUEVOS_TLV_OR_VPCONNECT,
               CASE WHEN COALESCE(C.FLG_CE_VPCONNECT,0) = 1 OR COALESCE(TT.flg_ce_bpe, 0) = 1 THEN 1 ELSE 0 END FLG_CE_TLV_OR_VPCONNECT,
               CASE WHEN COALESCE(C.FLG_CE_VPCONNECT,0) = 1 OR (COALESCE(TT.flg_ce_bpe, 0) = 1 AND  TT.FLG_CREDITOS_NUEVOS_BPE = 1) THEN 1 ELSE 0 END FLG_CE_TLV_NUEVOS_OR_VPCONNECT,
               CASE WHEN COALESCE(C.FLG_ACEPTA_VPCONNECT,0) = 1 OR (COALESCE(TT.flg_acepta_campana_bpe, 0) = 1  AND TT.FLG_CREDITOS_NUEVOS_BPE = 1) THEN 1 ELSE 0 END FLG_ACEPTA_TLV_NUEVOS_OR_VPCONNECT,
               CASE WHEN COALESCE(C.FLG_ACEPTA_VPCONNECT,0) = 1 OR (COALESCE(TT.flg_acepta_campana_bpe, 0) = 1 AND TT.FLG_CREDITOS_NUEVOS_BPE = 1 ) THEN 1 ELSE 0 END FLG_ACEPTA_TLV_OR_VPCONNECT,
               CASE WHEN COALESCE(C.FLG_LO_PENSARA_VPCONNECT,0) = 1 OR (COALESCE(TT.flg_lo_pensara, 0) = 1 AND TT.FLG_CREDITOS_NUEVOS_BPE = 1 ) THEN 1 ELSE 0 END FLG_LO_PENSARA_TLV_OR_VPCONNECT,
               CASE WHEN COALESCE(C.FLG_NO_ACEPTA_VPCONNECT,0) = 1 OR (COALESCE(TT.flg_no_acepta_campana, 0) = 1 AND TT.FLG_CREDITOS_NUEVOS_BPE = 1 )THEN 1 ELSE 0 END FLG_NO_ACEPTA_TLV_OR_VPCONNECT,
               CASE when TT.FLG_CREDITOS_NUEVOS_BPE = 1 THEN COALESCE(TT.flg_gestionado_bpe, 0) ELSE 0 END flg_gestionado_bpe_nuevos,
               CASE when TT.FLG_CREDITOS_NUEVOS_BPE = 1 THEN COALESCE(TT.flg_gestionado_bpe_estricto, 0)  ELSE 0 END flg_gestionado_bpe_estricto_nuevos,
               CASE when TT.FLG_CREDITOS_NUEVOS_BPE = 1 THEN COALESCE(TT.flg_gestionado_bpe_sin_reciclado, 0)  ELSE 0 END flg_gestionado_bpe_sin_reciclado_nuevos,
               CASE when TT.FLG_CREDITOS_NUEVOS_BPE = 1 THEN COALESCE(TT.flg_gestionado_bpe_estricto_sin_reciclado, 0)  ELSE 0 END flg_gestionado_bpe_estricto_sin_reciclado_nuevos,
               CASE when TT.FLG_CREDITOS_NUEVOS_BPE = 1 THEN COALESCE(TT.flg_ce_bpe, 0) ELSE 0 END flg_ce_bpe_nuevos,
               CASE when TT.FLG_CREDITOS_NUEVOS_BPE = 1 THEN COALESCE(TT.flg_acepta_campana_bpe, 0) ELSE 0 END flg_acepta_campana_bpe_nuevos,
               COALESCE(TT.flg_gestionado_bpe, 0) flg_gestionado_bpe_all,
               COALESCE(TT.flg_gestionado_bpe_estricto, 0) flg_gestionado_bpe_estricto_all,
               COALESCE(TT.flg_gestionado_bpe_sin_reciclado, 0) flg_gestionado_bpe_sin_reciclado_all,
               COALESCE(TT.flg_gestionado_bpe_estricto_sin_reciclado, 0) flg_gestionado_bpe_estricto_sin_reciclado_all,
               COALESCE(TT.flg_ce_bpe, 0) flg_ce_bpe_all,
               COALESCE(TT.flg_acepta_campana_bpe, 0) flg_acepta_campana_bpe_all,
               COALESCE(CC.flg_desembolso, 0) flg_desembolso,
               COALESCE(CC.flg_desembolso_nuevos, 0) flg_desembolso_nuevos,
               CASE WHEN COALESCE(CC.flg_desembolso, 0) = 0 AND (
                   COALESCE(C.FLG_ACEPTA_VPCONNECT,0) = 1 OR (COALESCE(TT.flg_acepta_campana_bpe, 0) = 1  AND TT.FLG_CREDITOS_NUEVOS_BPE = 1) 
                   ) THEN 1 ELSE 0 END FLG_ACEPTA_TLV_NUEVOS_OR_VPCONNECT_NO_DESEMBOLSA,
               TT.PRIMER_DIA, 
               TT.ULTIMO_DIA,
               COALESCE(TT.DIAS_CALENDARIOS_GESTION, 0) DIAS_CALENDARIOS_GESTION,
               COALESCE(TT.DIAS_UTILES_GESTION, 0) DIAS_UTILES_GESTION,
               COALESCE(TT.DIAS_UTILES_CON_CE, 0) DIAS_UTILES_CON_CE,
               COALESCE(TT.DIAS_UTILES_SIN_CE, 0) DIAS_UTILES_SIN_CE,
               COALESCE(TT.NRO_LLAMADAS_GESTION_SIN_CE, 0) NRO_LLAMADAS_GESTION_SIN_CE,
               COALESCE(TT.NRO_LLAMADAS_GESTION_ESTRICTO_SIN_CE, 0) NRO_LLAMADAS_GESTION_ESTRICTO_SIN_CE,
               COALESCE(TT.NRO_LLAMADAS_GESTION_SIN_RECICLADO_TAMPOCO_CE, 0) NRO_LLAMADAS_GESTION_SIN_RECICLADO_TAMPOCO_CE,
               COALESCE(TT.NRO_LLAMADAS_GESTIONADO_ESTRICTO_SIN_RECICLADO_SIN_CE, 0) NRO_LLAMADAS_GESTIONADO_ESTRICTO_SIN_RECICLADO_SIN_CE,
               D.periodo_campania p_periodo
    
        FROM d_mdl_vpc_disc.HM_DESPLIEGUE_CAMPANIAS_AGRUPADO  D
        LEFT JOIN d_mdl_vpc_disc.HM_RIESGOS_DATA_BPE_AGRUPADO RR
        ON D.NUM_RUC = RR.NUM_RUC AND D.PERIODO_CAMPANIA = RR.PERIODO_CAMPANIA
        LEFT JOIN d_mdl_vpc_disc.HM_CAMPHANAS_TOTAL_AGRUPADO  C
        ON D.NUM_RUC = C.NUM_RUC AND D.PERIODO_CAMPANIA = C.PERIODO_CAMPANIA
        --LEFT JOIN d_mdl_vpc_disc.HM_CALCULADORA_BPE CALC
        --ON C.id_empresa = CALC.empresa_id AND D.PERIODO_CAMPANIA = CALC.PERIODO_CAMPANIA
        LEFT JOIN d_mdl_vpc_disc.STAGE_HM_COLNETA CC
        ON D.NUM_RUC = CC.numero_documento_val AND D.PERIODO_CAMPANIA = CC.periodo_solicitud
        LEFT JOIN d_mdl_vpc_disc.HM_VMVP_FEEDBACK_RUC TT
        ON D.NUM_RUC = TT.num_documento AND D.PERIODO_CAMPANIA = TT.GESTION
        WHERE D.NUM_RUC NOT LIKE &#039;&#039;
        AND D.periodo_campania NOT LIKE &#039;&#039;
        ORDER BY D.periodo_campania DESC
    )
    
    
    SELECT periodo_campania, periodo_ejecucion, count(1), count(distinct(num_ruc)), sum(flg_gestionado_bpe_nuevos) gestionado_bpe_nuevo ,
           sum(flg_gestionado_bpe_estricto_nuevos) gestionado_bpe_estricto_nuevo ,
           sum(flg_ce_bpe_nuevos) ce_nuevo, sum(flg_acepta_campana_bpe_nuevos) acepta_nuevo
    FROM d_mdl_vpc_disc.STAGE_HM_BASE_CAMPANIA
    GROUP BY periodo_campania, periodo_ejecucion
    ORDER BY periodo_campania DESC, periodo_ejecucion
    
    
    SELECT * FROM d_mdl_vpc_disc.STAGE_HM_BASE_CAMPANIA 
    WHERE flg_gestionado_bpe_estricto_nuevos = 1
    --AND CAST(bucket AS INT) <> bucket_rr
    AND bucket_completado IS NULL
    AND periodo_campania >= &#039;202206&#039;
    LIMIT 100

Add a code snippet to your website: www.paste.org