En este proyecto se pretende dar respuesta de alto valor estratégico a través de consultas SQL a todas las preguntas de negocio que se proponen a continuación. Para ello, se han clasificado las preguntas por bloques según el tipo de pregunta a responder. La fecha del análisis se realiza en Diciembre de 2019.
2 Conexión a BBDD
Code
# Cargar librerías necesariaslibrary(DBI)library(odbc)library(dplyr)library(skimr)library(dlookr)library(tidyr)library(huxtable)library(scales)library(corrplot)library(echarts4r)# Conexión a BBDDcon <-dbConnect(odbc::odbc(), Driver ="ODBC Driver 17 for SQL Server", Server ="LAPTOP-P7645H6F", Database ="datos_banco", Trusted_Connection ="Yes")
3 EDA de las tablas de la BBDD
Code
# Obtención de las tablas para EDAcards_data <-dbGetQuery (con, "SELECT * FROM cards_data")mcc_codes <-dbGetQuery (con, "SELECT * FROM mcc_codes")transacciones_19 <-dbGetQuery (con, "SELECT * FROM transacciones WHERE date BETWEEN '20190101' AND '20190630'")users_data <-dbGetQuery (con, "SELECT * FROM users_data")
# Obtención los dataframes de las huxtablesdf_dn <-diagnose_numeric(cards_data)df_ou <-diagnose_outlier(cards_data)# Unimos por la columna "variables"combined_df <-left_join(df_dn, df_ou, by ="variables")# Convertimos el dataframe combinado a huxtablecombined_table <-huxtable(combined_df) %>%theme_blue() %>%set_all_borders() %>%set_all_border_colors("black") %>%set_font_size(8) %>%set_align("center") %>%set_position("center")# Visualizamos la tabla combinadacombined_table %>%select(-outliers_cnt,-outliers_ratio, -outliers_mean, -with_mean)
# Obtención los dataframes de las huxtablesdf_dn <-diagnose_numeric(transacciones_19)df_ou <-diagnose_outlier(transacciones_19)# Unimos por la columna "variables"combined_df <-left_join(df_dn, df_ou, by ="variables")# Convertimos el dataframe combinado a huxtablecombined_table <-huxtable(combined_df) %>%theme_blue() %>%set_all_borders() %>%set_all_border_colors("black") %>%set_font_size(8) %>%set_align("center") %>%set_position("center")# Visualizamos la tabla combinadacombined_table %>%select(-outliers_cnt,-outliers_ratio, -outliers_mean, -with_mean)
# Obtención los dataframes de las huxtablesdf_dn <-diagnose_numeric(users_data)df_ou <-diagnose_outlier(users_data)# Unimos por la columna "variables"combined_df <-left_join(df_dn, df_ou, by ="variables")# Convertimos el dataframe combinado a huxtablecombined_table <-huxtable(combined_df) %>%theme_blue() %>%set_all_borders() %>%set_all_border_colors("black") %>%set_font_size(8) %>%set_align("center") %>%set_position("center")# Visualizamos la tabla combinadacombined_table %>%select(-outliers_cnt,-outliers_ratio, -outliers_mean, -with_mean)
variables
min
Q1
mean
median
Q3
max
zero
minus
outlier
without_mean
id
0
500
1e+03
1e+03
1.5e+03
2e+03
1
0
0
1e+03
current_age
18
30
45.4
44
58
101
0
0
1
45.4
retirement_age
50
65
66.2
66
68
79
0
0
210
66.6
birth_year
1.92e+03
1.96e+03
1.97e+03
1.97e+03
1.99e+03
2e+03
0
0
1
1.97e+03
birth_month
1
3
6.44
7
10
12
0
0
0
6.44
latitude
213
3.27e+03
3.43e+03
3.75e+03
4.09e+03
6.11e+03
0
0
188
3.74e+03
longitude
-1.59e+04
-9.66e+03
-8.21e+03
-8.43e+03
-7.62e+03
-703
0
2000
236
-9.09e+03
per_capita_income
0
1.68e+04
2.31e+04
2.06e+04
2.63e+04
1.63e+05
15
0
123
2.14e+04
yearly_income
1
3.28e+04
4.57e+04
4.07e+04
5.27e+04
3.07e+05
0
0
118
4.24e+04
total_debt
0
2.4e+04
6.37e+04
5.83e+04
8.91e+04
5.16e+05
102
0
51
5.9e+04
credit_score
480
681
710
712
753
850
0
0
67
716
num_credit_cards
1
2
3.07
3
4
9
0
0
20
3.02
4 Preguntas de negocio
4.1 Segmentación Demográfica y Socioeconómica:
Estas preguntas buscan segmentar a los clientes por sus características demográficas o socioeconómicas, lo que es esencial para conocer el comportamiento y las necesidades de los distintos grupos.
4.1.1 ANALISIS GENERAL: Consumo en compras, número de transacciones e importes de compras promedio por género y edad
Code
WITH T1 AS(SELECT gender,CASEWHEN u.current_age >=18AND u.current_age <=25THEN'jovenes'WHEN u.current_age >25AND u.current_age <=45THEN'adultos'WHEN u.current_age >45AND u.current_age <=65THEN'mayores'ELSE'seniors'ENDAS edad,COUNT (DISTINCT t.id) AS transacciones,AVG (t.amount) AS avg_gasto,SUM (t.amount) AS total_gastoFROM users_data uINNERJOIN transacciones tON u.id= t.client_idGROUPBY u.gender,CASEWHEN u.current_age >=18AND u.current_age <=25THEN'jovenes'WHEN u.current_age >25AND u.current_age <=45THEN'adultos'WHEN u.current_age >45AND u.current_age <=65THEN'mayores'ELSE'seniors'END)SELECTDENSE_RANK () OVER (ORDERBY total_gasto DESC) AS rank_gasto,DENSE_RANK () OVER (ORDERBY transacciones DESC) AS rank_transacc,DENSE_RANK () OVER (ORDERBY avg_gasto DESC) AS rank_avg_gasto, gender, edad, total_gasto, transacciones, avg_gastoFROM T1ORDERBY rank_gasto ASC
rank_gasto
rank_transacc
rank_avg_gasto
gender
edad
total_gasto
transacciones
avg_gasto
1
1
2
Female
mayores
133.184.681
3.082.028
43.2
2
2
5
Male
mayores
129.362.043
3.010.023
43
3
3
4
Male
adultos
91.245.199
2.118.984
43.1
4
4
6
Female
adultos
89.233.219
2.083.249
42.8
5
5
7
Female
seniors
69.029.633
1.613.302
42.8
6
6
8
Male
seniors
57.597.141
1.353.544
42.6
7
7
1
Female
jovenes
1.862.013
37.337
49.9
8
8
3
Male
jovenes
321.595
7.448
43.2
CONCLUSIONES: el grupo de personas que ha gastado más y que además es el que más transacciones ha realizado es el de mujeres mayores (entre los 45 y 65 años), pero el grupo de personas que más gasta por promedio de transacción es el de mujeres jovenes (entre los 18 a 25 años.)
4.1.2 ¿Cuál es el límite de crédito promedio de los clientes según su género?
4.1.3 ¿Cuál es el promedio de edad de los clientes con un límite de crédito superior a $10,000?
Code
SELECTAVG (u.current_age) AS prom_edadFROM users_data uINNERJOIN cards_data cON u.id= c.client_idWHERE c.credit_limit >10000
prom_edad
49
4.1.4 ¿Cuántos clientes con ingresos superiores a $60,000 han realizado más de 20 transacciones en 2019?
Code
WITH T1 AS(SELECT t.client_id,COUNT (DISTINCT t.id) AS nro_transaccionesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idINNERJOIN users_data uON u.id= t.client_idWHERE u.yearly_income >60000ANDYEAR (t.date) =2019GROUPBY t.client_idHAVINGCOUNT (DISTINCT t.id) >20)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
197
4.1.5 ¿Cuántos clientes con un puntaje de crédito superior a 750 tienen más de 5 tarjetas activas?
Code
WITH T1 AS(SELECT c.client_id,SUM (c.num_cards_issued) AS nro_tarjetasFROM cards_data cINNERJOIN users_data uON c.client_id = u.idWHERE u.credit_score >750AND-- para averiguar las tarjetas activas, se filtra desde la fecha actual hasta la última fecha de expiración c.fecha_expiracion BETWEEN'20191201'AND'20241231'GROUPBY c.client_idHAVINGSUM (c.num_cards_issued) >5)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
122
4.1.6 ¿Cuántos clientes con una edad superior a 50 años tienen más de tres tarjetas de crédito activas?
Code
WITH T1 AS(SELECT c.client_id,SUM (c.num_cards_issued) AS nro_tarjetasFROM users_data uINNERJOIN cards_data cON u.id= c.client_idWHERE u.current_age >50AND-- para averiguar las tarjetas activas, se filtra desde la fecha actual hasta la última fecha de expiración c.fecha_expiracion BETWEEN'20191201'AND'20241231'GROUPBY c.client_idHAVINGSUM (c.num_cards_issued) >3)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
487
4.1.7 ¿Cuántos clientes con ingresos inferiores a $30,000 tienen más de 3 tarjetas de crédito activas?
Code
WITH T1 AS(SELECT c.client_id,SUM (c.num_cards_issued) AS nro_tarjetasFROM users_data uINNERJOIN cards_data cON u.id= c.client_idWHERE u.yearly_income <30000AND-- para averiguar las tarjetas activas, se filtra desde la fecha actual hasta la última fecha de expiración c.fecha_expiracion BETWEEN'20191201'AND'20241231'GROUPBY c.client_idHAVINGSUM (c.num_cards_issued) >3)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
176
4.1.8 ¿Cuál es la relación entre la edad y el puntaje de crédito de los clientes?
Code
SELECTcurrent_age,credit_scoreFROMusers_data
Code
correlacion <-cor(p7$current_age, p7$credit_score) # obtención de la correlación lineal de dos variables
COEFICIENTE DE CORRELACION
-0.00547
CONCLUSION: NO existe apenas correlación entre las variables (la correlación se mide entre 1 y -1, donde 0 es que no existe ningún tipo de correlación entre variables).
4.1.9 ¿Cuántos clientes con un puntaje de crédito superior a 700 han realizado compras por más de $5,000 en comercios con el código MCC 5732 (electrónica)?
Code
WITH T1 AS(SELECT u.id,SUM (t.amount) AS total_comprasFROM users_data uINNERJOIN transacciones tON u.id= t.client_idWHERE t.mcc =5732GROUPBY u.idHAVINGSUM (t.amount) >5000)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
32
4.2 Análisis de Tarjetas de Crédito y Débito:
Estas preguntas buscan entender el comportamiento de los clientes en relación con las tarjetas que poseen, sus límites de crédito y su comportamiento de compra.
4.2.1 ANALISIS GENERAL: promedio general de días transcurridos entre transacciones en los codigos mcc que tengan menos transacciones
Code
WITH T1 AS(SELECT t.client_id, t.mcc, m.valor,CAST (dateASdate) AS fecha,COUNT (1) OVER (PARTITIONBY t.client_id) AS nro_transaccFROM mcc_codes mLEFTJOIN transacciones tON m.mcc = t.mccWHERE m.mcc IN (3075, 3144, 5733) -- los tres códigos con menos transacciones), T2 AS(SELECT client_id, mcc, valor, fecha,LAG (fecha, 1) OVER (PARTITIONBY client_id, mcc ORDERBY fecha) AS fecha_antFROM T1WHERE nro_transacc >3-- filtramos por aquellos clientes que tienen más de 3 transacciones), T3 AS(SELECT*,COALESCE (fecha_ant, fecha) AS fecha_ant_v2, -- sustituimos los valores nulos DATEDIFF (DAY, COALESCE (fecha_ant, fecha), fecha) AS dias_transcFROM T2WHERE DATEDIFF (DAY, COALESCE (fecha_ant, fecha), fecha) >0-- eliminamos aquellas transacc. de clientes que solo tenga 1 transacc.) -- RESULTADOSELECT mcc, valor,AVG (dias_transc) AS avg_dias -- agrupamos los mcc para obtener el promedio de días transcurridos de los mcc con menos transacc.FROM T3GROUPBY mcc, valor
mcc
valor
avg_dias
5733
Music Stores - Musical Instruments
646
3075
Bolt, Nut, Screw, Rivet Manufacturing
772
3144
Floor Covering Stores
989
4.2.2 ¿Cuál es la relación entre el número de tarjetas activas y la deuda total de los clientes?
Code
SELECT c.num_cards_issued, u.total_debtFROM cards_data cINNERJOIN users_data uON c.client_id = u.idWHERE-- para averiguar las tarjetas activas, se filtra desde la fecha actual hasta la última fecha de expiración c.fecha_expiracion BETWEEN'20191201'AND'20241231'
Code
correlacion_p9 <-cor(p9$num_cards_issued, p9$total_debt) # obtención de la correlación lineal de dos variables
COEFICIENTE DE CORRELACION
0.025
CONCLUSION: NO existe apenas correlación entre las variables (la correlación se mide entre 1 y -1, donde 0 es que no existe ningún tipo de correlación entre variables).
4.2.3 ¿Cuál es el límite de crédito promedio de los clientes que tienen más de 2 tarjetas activas?
Code
SELECTAVG (credit_limit) AS lim_cred_promedioFROMcards_dataWHEREnum_cards_issued >2ANDfecha_expiracion BETWEEN'20191201'AND'20241231'
lim_cred_promedio
10.285,43
4.2.4 ¿Cuántos clientes con más de 5 tarjetas activas tienen un límite de crédito superior a $10,000?
Code
WITH T1 AS(SELECT client_id,SUM (num_cards_issued) AS total_tarjetasFROM cards_dataWHERE credit_limit >10000AND fecha_expiracion BETWEEN'20191201'AND'20241231'GROUPBY client_idHAVINGSUM (num_cards_issued) >5)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
139
4.2.5 ¿Cuántos clientes con tarjeta de crédito tienen una deuda superior a $20,000?
Code
SELECTCOUNT (DISTINCT u.id) AS nro_clientesFROM users_data uINNERJOIN cards_data cON u.id= c.client_idWHERE c.card_type ='credit'AND u.total_debt >20000
nro_clientes
1.009
4.2.6 ¿Cuántos clientes con tarjeta de crédito tienen un límite de crédito inferior a $1,000?
Code
SELECTCOUNT (DISTINCT client_id) AS nro_clientesFROM cards_dataWHERE card_type ='credit'AND credit_limit <1000
nro_clientes
42
4.2.7 ¿Cuál es el límite de crédito promedio de los clientes que han realizado más de 500 transacciones en 2019?
Code
WITH T1 AS(SELECT t.client_id, c.credit_limit,COUNT (t.id) AS nro_transac FROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHEREYEAR (t.date) =2019GROUPBY t.client_id, c.credit_limitHAVINGCOUNT (t.id) >500)SELECTAVG (credit_limit) AS lim_cred_promFROM T1
lim_cred_prom
14.942,76
4.2.8 ¿Cuántos clientes con tarjeta de crédito han realizado compras superiores a $250 en comercios con el código MCC 5812 (restaurantes)?
Code
SELECTCOUNT (DISTINCT c.client_id) AS nro_clientesFROM cards_data cINNERJOIN transacciones tON c.client_id = t.client_idWHERE c.card_type ='credit'AND t.amount >250AND t.mcc =5812
nro_clientes
3
4.3 Análisis de Transacciones y Comportamiento de Compra:
Aquí, las preguntas están enfocadas en el volumen, tipo y frecuencia de transacciones, lo que puede ayudar a identificar tendencias de gasto.
4.3.1 ANALISIS GENERAL: Análisis de frecuencia de compra
Code
WITH general AS(SELECT DATENAME (WEEKDAY, date) AS dia,COUNT (1) AS transacc_diaFROM transaccionesGROUPBY DATENAME (WEEKDAY, date)), acum AS(SELECT*,SUM (transacc_dia) OVER () AS total_transacc,SUM (transacc_dia) OVER (ORDERBY transacc_dia DESC) AS acum_transaccFROM general)SELECT dia,CAST (CAST (acum_transacc ASfloat) / total_transacc *100ASdecimal (8,2)) AS pct_transaccFROM acum
Code
WITH general AS(SELECT DATENAME (MONTH, date) AS mes,COUNT (1) AS transacc_mesFROM transaccionesGROUPBY DATENAME (MONTH, date)), acum AS(SELECT*,SUM (transacc_mes) OVER () AS total_transacc,SUM (transacc_mes) OVER (ORDERBY transacc_mes DESC) AS acum_transaccFROM general)SELECT mes,CAST (CAST (acum_transacc ASfloat) / total_transacc *100ASdecimal (8,2)) AS pct_transaccFROM acum
Frecuencia de compra por días
dia
pct_transacc
Thursday
14.4
Saturday
28.7
Sunday
43
Tuesday
57.2
Monday
71.5
Wednesday
85.8
Friday
100
Frecuencia de compra por meses
mes
pct_transacc
August
8.69
July
17.4
October
26
May
34.6
March
43.2
January
51.8
June
60.2
September
68.6
April
76.9
December
84.7
February
92.5
November
100
CONCLUSION: Según el porcentaje de Pareto aplicado; más del 80 % de las transacciones se realizan de Sábados a Jueves y entre los meses comprendidos que van de Marzo a Octubre y entre Diciembre y Enero
4.3.2 ¿Cuántas transacciones fueron realizadas por clientes con tarjeta de crédito en el año 2017?
Code
SELECTCOUNT (DISTINCT t.id) AS nro_transaccionesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE c.card_type ='credit'ANDYEAR (t.date) =2017
nro_transacciones
1.027.858
4.3.3 ¿Cuál es el importe total de las transacciones realizadas por clientes con tarjeta de crédito en 2017?
Code
SELECTSUM (t.amount) AS importe_totalFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE c.card_type ='credit'ANDYEAR (t.date) =2017
importe_total
74.193.501
4.3.4 ¿Cuántos clientes han realizado compras por más de $2,000 en comercios con el código MCC 5732 (electrónica)?
Code
SELECTCOUNT (DISTINCT client_id) AS nro_clientesFROM transaccionesWHERE amount >2000AND mcc =5732
nro_clientes
7
4.3.5 ¿Cuántos clientes con más de 2 tarjetas activas realizaron transacciones superiores a $1,000 durante 2016?
Code
SELECTCOUNT (DISTINCT t.client_id) AS nro_clientesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE c.num_cards_issued >2AND c.fecha_expiracion BETWEEN'20191201'AND'20241231'AND t.amount >1000ANDYEAR (t.date) =2016
nro_clientes
8
4.3.6 ¿Cuántos clientes han realizado más de 10 transacciones en comercios con el código MCC 5732 (electrónica) entre 2015 y 2019?
Code
WITH T1 AS(SELECT t.client_id,COUNT (DISTINCT t.id) AS nro_transaccionesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE t.mcc =5732AND t.dateBETWEEN'20150101'AND'20191231'GROUPBY t.client_idHAVINGCOUNT (DISTINCT t.id) >10)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
61
4.3.7 ¿Cuál es el importe total de las compras realizadas en comercios con el código MCC 5732 (electrónica)?
Code
SELECTSUM (amount) AS importe_totalFROM transaccionesWHERE mcc =5732
importe_total
1.063.471,09
4.3.8 ¿Cuántos clientes han realizado más de 40 transacciones en comercios con el código MCC 5732 (electrónica) entre 2010 y 2019?
Code
WITH T1 AS(SELECT client_id,COUNT (DISTINCTid) AS nro_transaccionesFROM transaccionesWHERE mcc =5732ANDdateBETWEEN'20100101'AND'20191231'GROUPBY client_idHAVINGCOUNT (DISTINCTid) >40)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
3
4.4 Análisis de Deuda y Crédito:
Este tipo de preguntas ayuda a evaluar el riesgo crediticio de los clientes y la relación entre su deuda y las transacciones realizadas.
4.4.1 ¿Cuál es la relación entre la deuda total de los clientes y la cantidad de transacciones realizadas en 2019?
correlacion_p23 <-cor(p23$total_debt, p23$nro_transacciones) # obtención de la correlación lineal de dos variables
COEFICIENTE DE CORRELACION
-0.0305
CONCLUSION: NO existe apenas correlación negativa entre las variables (la correlación se mide entre 1 y -1, donde 0 es que no existe ningún tipo de correlación entre variables).
4.4.2 ¿Cuántos clientes con una deuda superior a $15,000 han realizado compras en comercios con el código MCC 5732 (electrónica)?
4.4.6 ¿Cuántos clientes con tarjeta de crédito han realizado compras superiores a $1,500 en comercios con el código MCC 5732 (electrónica)?
Code
SELECTCOUNT (DISTINCT t.client_id) AS nro_clientes FROM transacciones tINNERJOIN cards_data cON c.client_id = t.client_idWHERE c.card_type ='credit'AND t.amount >1500AND t.mcc =5732
nro_clientes
6
4.5 Análisis de Segmentación por Comercios (MCC):
Estas preguntas permiten entender cómo los clientes interactúan con diferentes tipos de comercios, lo cual es útil para estrategias de marketing y ventas.
4.5.1 ¿Cuántos clientes han realizado compras en comercios con códigos MCC 5732 (electrónica) y 5812 (restaurantes) durante 2018?
Code
SELECT mcc,COUNT (DISTINCT client_id) AS nro_clientesFROM transaccionesWHERE mcc IN (5732, 5812) ANDYEAR (date) =2018GROUPBY mcc
mcc
nro_clientes
5732
441
5812
1.153
4.5.2 ¿Cuántos clientes han realizado compras superiores a $1,000 en 2019 en comercios con el código MCC 5732 (electrónica)?
4.5.3 ¿Cuántos clientes con tarjeta de crédito han realizado transacciones por más de $500 en comercios con el código MCC 5732 (electrónica)?
Code
SELECTCOUNT (DISTINCT c.client_id) AS nro_clientesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE c.card_type ='credit'AND t.amount >500AND t.mcc =5732
nro_clientes
56
4.5.4 ¿Cuántos clientes con tarjeta de débito han realizado compras en comercios con el código MCC 5732 (electrónica) en 2018?
Code
SELECTCOUNT (DISTINCT c.client_id) AS nro_clientesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE c.card_type ='debit'AND t.mcc =5732ANDYEAR (t.date) =2018
nro_clientes
409
4.5.5 ¿Cuál es el importe total de transacciones realizadas en comercios con el código MCC 5411 (supermercados) durante 2017?
Code
SELECTSUM (amount) AS importe_totalFROM transaccionesWHERE mcc =5411ANDYEAR (date) =2017
importe_total
4.271.476,38
4.5.6 ¿Cuántos clientes con tarjeta de crédito han realizado compras en comercios con el código MCC 5411 (supermercados) en 2017?
Code
SELECTCOUNT (DISTINCT t.client_id) AS nro_clientesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE c.card_type ='credit'AND t.mcc =5411ANDYEAR (t.date) =2017
nro_clientes
890
4.5.7 ¿Cuántos clientes han realizado compras superiores a $2,000 en comercios con el código MCC 5814 (bares)?
Code
SELECTCOUNT (DISTINCT client_id) AS nro_clientesFROM transaccionesWHERE amount >2000AND mcc =5814
nro_clientes
0
4.6 Análisis de Frecuencia y Volumen de Transacciones:
Estas preguntas son útiles para identificar patrones y frecuencias de compra que pueden ser útiles para segmentar a los clientes en función de su lealtad y comportamiento.
4.6.1 ¿Cuántos clientes han realizado más de 10 transacciones en comercios con el código MCC 5732 (electrónica) entre 2017 y 2019?
Code
WITH T1 AS(SELECT client_id,COUNT (DISTINCTid) AS nro_transaccionesFROM transaccionesWHERE mcc =5732ANDdateBETWEEN'20170101'AND'20191231'GROUPBY client_idHAVINGCOUNT (DISTINCTid) >10)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
12
4.6.2 ¿Cuántos clientes con tarjeta de crédito han realizado más de 50 transacciones en comercios con el código MCC 5411 (supermercados) durante 2019?
Code
WITH T1 AS(SELECT t.client_id,COUNT (DISTINCT t.id) AS nro_transaccionesFROM transacciones tINNERJOIN cards_data cON t.client_id = c.client_idWHERE c.card_type ='credit'AND t.mcc =5411ANDYEAR (t.date) =2019GROUPBY t.client_idHAVINGCOUNT (DISTINCT t.id) >50)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
669
4.6.3 ¿Cuántos clientes han realizado más de 5 transacciones en comercios con el código MCC 5411 (supermercados) durante 2019?
Code
WITH T1 AS(SELECT client_id,COUNT (DISTINCTid) AS nro_transaccionesFROM transacciones WHERE mcc =5411ANDYEAR (date) =2019GROUPBY client_idHAVINGCOUNT (DISTINCTid) >5)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
1.206
4.6.4 ¿Cuántos clientes han realizado más de 10 transacciones en comercios con el código MCC 5732 (electrónica) entre 2010 y 2019?
Code
WITH T1 AS(SELECT client_id,COUNT (DISTINCTid) AS nro_transaccionesFROM transacciones WHERE mcc =5732ANDdateBETWEEN'20100101'AND'20191231'GROUPBY client_idHAVINGCOUNT (DISTINCTid) >10)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
179
4.6.5 ¿Cuántos clientes han realizado más de 15 transacciones en comercios con el código MCC 5732 (electrónica)?
Code
WITH T1 AS(SELECT client_id,COUNT (DISTINCTid) AS nro_transaccionesFROM transacciones WHERE mcc =5732GROUPBY client_idHAVINGCOUNT (DISTINCTid) >15)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
96
4.6.6 ¿Cuántos clientes han realizado transacciones superiores a $3,000 en comercios con el código MCC 5732 (electrónica)?
Code
SELECTCOUNT (DISTINCT client_id) AS nro_clientesFROM transacciones WHERE amount >3000AND mcc =5732
nro_clientes
6
4.6.7 ¿Cuántos clientes han realizado transacciones superiores a $150 en comercios con el código MCC 5814 (bares) durante 2018?
Code
SELECTCOUNT (DISTINCT client_id) AS nro_clientesFROM transacciones WHERE amount >150AND mcc =5814ANDYEAR (date) =2018
nro_clientes
15
4.7 Análisis de Comportamiento de Género:
Las preguntas relacionadas con el género pueden ser útiles para entender la diferencia de comportamiento de compra entre hombres y mujeres.
4.7.1 ¿Cuál es la diferencia entre el límite de crédito promedio de clientes masculinos y femeninos con tarjeta de crédito?
Code
WITH T1 AS(SELECTAVG (CASEWHEN u.gender ='male'THEN c.credit_limit ELSE0END) AS avg_male,AVG (CASEWHEN u.gender ='female'THEN c.credit_limit ELSE0END) AS avg_femaleFROM cards_data cINNERJOIN users_data uON c.client_id = u.idWHERE c.card_type ='credit')SELECT*,avg_male - avg_female AS diferenciaFROM T1
avg_male
avg_female
diferencia
5.524,74
5.649,64
-124,89
EL PROMEDIO ES MAYOR EN EL GENERO FEMENINO, CON UNA DIFERENCIA DE 124,89 $ A SU FAVOR
4.7.2 ¿Cuántos clientes femeninos con un puntaje de crédito superior a 700 han realizado más de 30 transacciones en comercios con el código MCC 5732 (electrónica)?
Code
WITH T1 AS(SELECT u.id,COUNT (DISTINCT t.id) AS nro_transaccionesFROM users_data uINNERJOIN transacciones tON u.id= t.client_idWHERE u.gender ='female'AND u.credit_score >700AND t.mcc =5732GROUPBY u.idHAVINGCOUNT (DISTINCT t.id) >30)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
3
4.7.3 ¿Cuántos clientes masculinos han realizado transacciones superiores a $200 en 2019 en comercios con el código MCC 5814 (bares)?
Code
SELECTCOUNT (DISTINCT u.id) AS nro_clientesFROM users_data uINNERJOIN transacciones tON u.id= t.client_idWHERE u.gender ='male'AND t.amount >200ANDYEAR (t.date) =2019AND t.mcc =5814
nro_clientes
2
4.7.4 ¿Cuántos clientes de género masculino tienen más de 3 tarjetas activas y realizaron transacciones superiores a $2,000?
Code
WITH T1 AS(SELECT u.id,SUM (c.num_cards_issued) AS total_tarjetasFROM users_data uINNERJOIN cards_data cON u.id= c.client_idINNERJOIN transacciones tON t.client_id = c.client_idWHERE u.gender ='male'AND c.fecha_expiracion BETWEEN'20191201'AND'20241231'AND-- FILTRAMOS PARA VER LAS TARJETAS ACTIVAS DESDE LA FECHA ACTUAL t.amount >2000GROUPBY u.idHAVINGSUM (c.num_cards_issued) >3)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
50
4.7.5 ¿Cuántos clientes femeninos tienen más de 5 tarjetas activas y un puntaje de crédito superior a 700?
Code
WITH T1 AS(SELECT u.id,SUM (c.num_cards_issued) AS total_tarjetasFROM users_data uINNERJOIN cards_data cON u.id= c.client_idWHERE u.gender ='female'AND c.fecha_expiracion BETWEEN'20191201'AND'20241231'AND-- FILTRAMOS PARA VER LAS TARJETAS ACTIVAS DESDE LA FECHA ACTUAL u.credit_score >700GROUPBY u.idHAVINGSUM (c.num_cards_issued) >5)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
147
4.7.6 ¿Cuál es la diferencia en la deuda total entre clientes masculinos y femeninos con tarjeta de crédito?
Code
WITH T1 AS(SELECTSUM (CASEWHEN u.gender ='male'THEN u.total_debt ELSE0END) AS deuda_male,SUM (CASEWHEN u.gender ='female'THEN u.total_debt ELSE0END) AS deuda_femaleFROM users_data uINNERJOIN cards_data cON u.id= c.client_idWHERE c.card_type ='credit')SELECT*, deuda_male - deuda_female AS diferenciaFROM T1
deuda_male
deuda_female
diferencia
61.297.409
59.207.840
2.089.569
EL GENERO MASCULINO TIENE 2.089.569 $ MAS DE DEUDA TOTAL QUE EL GENERO FEMENINO
4.7.7 ¿Cuántos clientes de género masculino realizaron más de 5 transacciones en comercios con MCC 5732 (electrónica) durante 2017?
Code
WITH T1 AS(SELECT u.id,COUNT (DISTINCT t.id) AS nro_transaccionesFROM users_data uINNERJOIN transacciones tON u.id= t.client_idWHERE u.gender ='male'AND t.mcc =5732ANDYEAR (t.date) =2017GROUPBY u.idHAVINGCOUNT (DISTINCT t.id) >5)SELECTCOUNT (1) AS nro_clientesFROM T1
nro_clientes
4
4.7.8 ¿Cuántos clientes masculinos han realizado más de 100 transacciones en comercios con el código MCC 5411 (supermercados)?
Code
WITH T1 AS(SELECT u.id,COUNT (DISTINCT t.id) AS nro_transaccionesFROM users_data uINNERJOIN transacciones tON u.id= t.client_idWHERE u.gender ='male'AND t.mcc =5411GROUPBY u.idHAVINGCOUNT (DISTINCT t.id) >100)SELECTCOUNT (1) AS nro_clientesFROM T1