Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so dont bother with any of their useless mail servers here and just use oauth login instead. Thank the nice Russians for causing that. :)

Paste

Pasted as Plain Text by registered user vvillacorta ( 5 years ago )
DROP TABLE IF EXISTS ............HM_SEGMENTACION_MERCADO_BPE
              
              
        CREATE TABLE ............HM_SEGMENTACION_MERCADO_BPE
        WITH ( format = 'Parquet',
        parquet_compression = 'SNAPPY',
        partitioned_by = ARRAY['PERIODO'],
        external_location= 's3://....................../HM_SEGMENTACION_MERCADO_BPE/'

        )
        AS (


        SELECT 
        A.cod_sbs_val, A.monto_facturacion_mnt, 
        coalesce(P1.monto_facturacion_mnt, 0) monto_facturacion_mnt_p1, 
        coalesce(P2.monto_facturacion_mnt, 0) monto_facturacion_mnt_p2,
        coalesce(P3.monto_facturacion_mnt, 0) monto_facturacion_mnt_p3,
        coalesce(P4.monto_facturacion_mnt, 0) monto_facturacion_mnt_p4,
        coalesce(P5.monto_facturacion_mnt, 0) monto_facturacion_mnt_p5,
        coalesce(P6.monto_facturacion_mnt, 0) monto_facturacion_mnt_p6,
        coalesce(P7.monto_facturacion_mnt, 0) monto_facturacion_mnt_p7,
        coalesce(P8.monto_facturacion_mnt, 0) monto_facturacion_mnt_p8,

        (coalesce(A.monto_facturacion_mnt,0) + coalesce(P1.monto_facturacion_mnt,0) + coalesce(P2.monto_facturacion_mnt,0) ) / 3 monto_facturacion_prom_u3m, 
        (coalesce(A.monto_facturacion_mnt,0) + coalesce(P1.monto_facturacion_mnt,0) + coalesce(P2.monto_facturacion_mnt,0) + coalesce(P3.monto_facturacion_mnt,0) + coalesce(P4.monto_facturacion_mnt,0) + coalesce(P5.monto_facturacion_mnt,0)) / 6 monto_facturacion_prom_u6m,
        (coalesce(A.monto_facturacion_mnt,0) + coalesce(P1.monto_facturacion_mnt,0) + coalesce(P2.monto_facturacion_mnt,0) + coalesce(P3.monto_facturacion_mnt,0) + coalesce(P4.monto_facturacion_mnt,0) + coalesce(P5.monto_facturacion_mnt,0) + coalesce(P6.monto_facturacion_mnt,0) + coalesce(P7.monto_facturacion_mnt,0) + coalesce(P8.monto_facturacion_mnt,0)) / 9 monto_facturacion_prom_u9m,


        (coalesce(A.monto_deuda_agr_mnt,0) + coalesce(P1.monto_deuda_agr_mnt,0) + coalesce(P2.monto_deuda_agr_mnt,0) ) / 3 monto_deuda_agr_prom_u3m, 
        (coalesce(A.monto_deuda_agr_mnt,0) + coalesce(P1.monto_deuda_agr_mnt,0) + coalesce(P2.monto_deuda_agr_mnt,0) + coalesce(P3.monto_deuda_agr_mnt,0) + coalesce(P4.monto_deuda_agr_mnt,0) + coalesce(P5.monto_deuda_agr_mnt,0)) / 6 monto_deuda_agr_prom_u6m,
        (coalesce(A.monto_deuda_agr_mnt,0) + coalesce(P1.monto_deuda_agr_mnt,0) + coalesce(P2.monto_deuda_agr_mnt,0) + coalesce(P3.monto_deuda_agr_mnt,0) + coalesce(P4.monto_deuda_agr_mnt,0) + coalesce(P5.monto_deuda_agr_mnt,0) + coalesce(P6.monto_deuda_agr_mnt,0) + coalesce(P7.monto_deuda_agr_mnt,0) + coalesce(P8.monto_deuda_agr_mnt,0)) / 9 monto_deuda_agr_prom_u9m,

        (coalesce(A.monto_deuda_sf_mnt,0) + coalesce(P1.monto_deuda_sf_mnt,0) + coalesce(P2.monto_deuda_sf_mnt,0) ) / 3 monto_deuda_sf_prom_u3m, 
        (coalesce(A.monto_deuda_sf_mnt,0) + coalesce(P1.monto_deuda_sf_mnt,0) + coalesce(P2.monto_deuda_sf_mnt,0) + coalesce(P3.monto_deuda_sf_mnt,0) + coalesce(P4.monto_deuda_sf_mnt,0) + coalesce(P5.monto_deuda_sf_mnt,0)) / 6 monto_deuda_sf_prom_u6m,
        (coalesce(A.monto_deuda_sf_mnt,0) + coalesce(P1.monto_deuda_sf_mnt,0) + coalesce(P2.monto_deuda_sf_mnt,0) + coalesce(P3.monto_deuda_sf_mnt,0) + coalesce(P4.monto_deuda_sf_mnt,0) + coalesce(P5.monto_deuda_sf_mnt,0) + coalesce(P6.monto_deuda_sf_mnt,0) + coalesce(P7.monto_deuda_sf_mnt,0) + coalesce(P8.monto_deuda_sf_mnt,0)) / 9 monto_deuda_sf_prom_u9m,



        CASE WHEN (coalesce(P3.monto_facturacion_mnt,0) + coalesce(P4.monto_facturacion_mnt,0) + coalesce(P5.monto_facturacion_mnt,0)) = 0 THEN 0 
        ELSE (coalesce(A.monto_facturacion_mnt,0) + coalesce(P1.monto_facturacion_mnt,0) + coalesce(P2.monto_facturacion_mnt,0)) / (coalesce(P3.monto_facturacion_mnt,0) + coalesce(P4.monto_facturacion_mnt,0) + coalesce(P5.monto_facturacion_mnt,0))  END tendencia_monto_facturacion_utl_trim ,


        CASE WHEN coalesce(P1.monto_facturacion_mnt,0)  = 0 THEN 0 
        ELSE coalesce(A.monto_facturacion_mnt,0) / coalesce(P1.monto_facturacion_mnt,0) END tendencia_monto_facturacion_ult_mes,
                                                    
        CASE WHEN (coalesce(P3.monto_deuda_agr_mnt,0) + coalesce(P4.monto_deuda_agr_mnt,0) + coalesce(P5.monto_deuda_agr_mnt,0)) = 0 THEN 0 
        ELSE (coalesce(A.monto_deuda_agr_mnt,0) + coalesce(P1.monto_deuda_agr_mnt,0) + coalesce(P2.monto_deuda_agr_mnt,0))  / (coalesce(P3.monto_deuda_agr_mnt,0) + coalesce(P4.monto_deuda_agr_mnt,0) + coalesce(P5.monto_deuda_agr_mnt,0))  END tendencia_monto_deuda_agr_utl_trim ,
        CASE WHEN coalesce(P1.monto_deuda_agr_mnt,0)  = 0 THEN 0 
        ELSE coalesce(A.monto_deuda_agr_mnt,0) / coalesce(P1.monto_deuda_agr_mnt,0) END tendencia_monto_deuda_agr_ult_mes,                                                                                                                                      

        CASE WHEN (coalesce(P3.monto_deuda_sf_mnt,0) + coalesce(P4.monto_deuda_sf_mnt,0) + coalesce(P5.monto_deuda_sf_mnt,0)) = 0 THEN 0 
        ELSE (coalesce(A.monto_deuda_sf_mnt,0) + coalesce(P1.monto_deuda_sf_mnt,0) + coalesce(P2.monto_deuda_sf_mnt,0))  / (coalesce(P3.monto_deuda_sf_mnt,0) + coalesce(P4.monto_deuda_sf_mnt,0) + coalesce(P5.monto_deuda_sf_mnt,0))  END tendencia_monto_deuda_sf_utl_trim ,
        CASE WHEN coalesce(P1.monto_deuda_sf_mnt,0)  = 0 THEN 0 
        ELSE coalesce(A.monto_deuda_sf_mnt,0) / coalesce(P1.monto_deuda_sf_mnt,0) END tendencia_monto_deuda_sf_ult_mes,
                                     
        A.entidad_cnt, 
        (coalesce(A.entidad_cnt,0) + coalesce(P1.entidad_cnt,0) + coalesce(P2.entidad_cnt,0) ) / 3 entidad_cnt_prom_u3m, 
        (coalesce(A.entidad_cnt,0) + coalesce(P1.entidad_cnt,0) + coalesce(P2.entidad_cnt,0) + coalesce(P3.entidad_cnt,0) + coalesce(P4.entidad_cnt,0) + coalesce(P5.entidad_cnt,0)) / 6 entidad_cntn_prom_u6m,
        (coalesce(A.entidad_cnt,0) + coalesce(P1.entidad_cnt,0) + coalesce(P2.entidad_cnt,0) + coalesce(P3.entidad_cnt,0) + coalesce(P4.entidad_cnt,0) + coalesce(P5.entidad_cnt,0) + coalesce(P6.entidad_cnt,0) + coalesce(P7.entidad_cnt,0) + coalesce(P8.entidad_cnt,0)) / 9 entidad_cnt_prom_u9m,
        CASE WHEN coalesce(A.entidad_cnt, 0) > coalesce(P1.entidad_cnt, 0)  AND coalesce(A.entidad_cnt, 0)  > coalesce(P2.entidad_cnt, 0)  THEN 1 ELSE 0 END nro_entidades_mayor_actual_u3m ,
        coalesce(A.entidad_cnt, 0) - ((coalesce(P1.entidad_cnt, 0) + coalesce(P1.entidad_cnt, 0))/2)nro_entidades_diff_actual_u2m,  
        A.banca_mes_val, A.segmento_mes_val, A.departamento_fin_val, A.region_fin_val, A.banca_fin_val, A.segmento_fin_val  ,  
         
        CASE WHEN  A.banca_fin_val <> P1.banca_fin_val OR A.banca_fin_val <> P2.banca_fin_val  THEN 1 ELSE 0 END AS FLG_CAMBIO_BANCA_U3M , 

        CASE WHEN  A.banca_fin_val <> P1.banca_fin_val OR A.banca_fin_val <> P2.banca_fin_val OR A.banca_fin_val <> P3.banca_fin_val OR A.banca_fin_val <> P4.banca_fin_val  OR A.banca_fin_val <> P5.banca_fin_val then 1 else 0 end  FLG_CAMBIO_BANCA_U6M,
         
        CASE WHEN  A.banca_fin_val <> P1.banca_fin_val OR A.banca_fin_val <> P2.banca_fin_val OR A.banca_fin_val <> P3.banca_fin_val OR A.banca_fin_val <> P4.banca_fin_val  OR A.banca_fin_val <> P5.banca_fin_val OR A.banca_fin_val <> P6.banca_fin_val OR A.banca_fin_val <> P7.banca_fin_val OR A.banca_fin_val <> P8.banca_fin_val THEN 1 ELSE 0 END  FLG_CAMBIO_BANCA_U9M,

        (CASE WHEN  A.banca_fin_val <> P1.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P2.banca_fin_val THEN 1 ELSE 0 END )   CNT_CAMBIO_BANCA_U3M ,  

        (CASE WHEN  A.banca_fin_val <> P1.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P2.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN  A.banca_fin_val <> P3.banca_fin_val THEN 1 ELSE 0 END )  + (CASE WHEN  A.banca_fin_val <> P4.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P5.banca_fin_val THEN 1 ELSE 0 END ) CNT_CAMBIO_BANCA_U6M , 

        (CASE WHEN  A.banca_fin_val <> P1.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P2.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN  A.banca_fin_val <> P3.banca_fin_val THEN 1 ELSE 0 END )  + (CASE WHEN  A.banca_fin_val <> P4.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P5.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P6.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P7.banca_fin_val THEN 1 ELSE 0 END ) + (CASE WHEN   A.banca_fin_val <> P8.banca_fin_val THEN 1 ELSE 0 END ) CNT_CAMBIO_BANCA_U9M , 
          
        CASE WHEN  A.region_fin_val <> P1.region_fin_val OR A.region_fin_val <> P2.region_fin_val  THEN 1 ELSE 0 END FLG_CAMBIO_REGION_FIN_U3M ,

        CASE WHEN  A.region_fin_val <> P1.region_fin_val OR A.region_fin_val <> P2.region_fin_val OR A.region_fin_val <> P3.region_fin_val OR A.region_fin_val <> P4.region_fin_val  OR A.region_fin_val <> P5.region_fin_val THEN 1 ELSE 0 END FLG_CAMBIO_REGION_U6M ,

        CASE WHEN  A.region_fin_val <> P1.region_fin_val OR A.region_fin_val <> P2.region_fin_val OR A.region_fin_val <> P3.region_fin_val OR A.region_fin_val <> P4.region_fin_val  OR A.region_fin_val <> P5.region_fin_val  OR A.region_fin_val <> P6.region_fin_val  OR A.region_fin_val <> P7.region_fin_val  OR A.region_fin_val <> P8.region_fin_val  THEN 1 ELSE 0 END FLG_CAMBIO_REGION_U9M ,

        CASE WHEN  A.segmento_fin_val <> P1.segmento_fin_val OR A.segmento_fin_val <> P2.segmento_fin_val  THEN 1 ELSE 0 END FLG_CAMBIO_SEGEMNTO_FIN_U3M    ,
        CASE WHEN  A.segmento_fin_val <> P1.segmento_fin_val OR A.segmento_fin_val <> P2.segmento_fin_val OR A.segmento_fin_val <> P3.segmento_fin_val OR A.segmento_fin_val <> P4.segmento_fin_val  OR A.segmento_fin_val <> P5.segmento_fin_val  THEN 1 ELSE 0 END FLG_CAMBIO_SEGMENTO_U6M  ,
          
        cast(date_format(A.fecha_sbs_dt ,'%Y%m') as varchar)  PERIODO
           
         
        FROM .................t_vpc_segmentacion_merc A
        LEFT JOIN .................t_vpc_segmentacion_merc  P1
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 1, P1.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P1.cod_sbs_val 
        LEFT JOIN .................t_vpc_segmentacion_merc  P2
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 2, P2.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P2.cod_sbs_val 
        LEFT JOIN .................t_vpc_segmentacion_merc  P3
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 3, P3.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P3.cod_sbs_val 
        LEFT JOIN .................t_vpc_segmentacion_merc  P4
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 4, P4.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P4.cod_sbs_val 
        LEFT JOIN .................t_vpc_segmentacion_merc  P5
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 5, P5.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P5.cod_sbs_val 
        LEFT JOIN .................t_vpc_segmentacion_merc  P6
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 6, P6.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P6.cod_sbs_val 
        LEFT JOIN .................t_vpc_segmentacion_merc  P7
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 7, P7.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P7.cod_sbs_val 
        LEFT JOIN .................t_vpc_segmentacion_merc  P8
        ON date_format(A.fecha_sbs_dt ,'%Y%m')  = date_format(date_add('month', 8, P8.fecha_sbs_dt)  , '%Y%m')
        AND A.cod_sbs_val  = P8.cod_sbs_val 
        WHERE  1 =  1 
          AND (A.banca_fin_val = 'BPE'   OR A.banca_mes_val = 'BPE') 
          AND cast(date_format(A.fecha_sbs_dt ,'%Y%m') as varchar) >= '202008'
        )

 

Revise this Paste

Your Name: Code Language: