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'
)
Add a code snippet to your website: www.paste.org