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