0% encontró este documento útil (0 votos)
28 vistas5 páginas

Practica SQL

El documento presenta diversas consultas SQL para analizar datos de clientes y transacciones. Incluye la identificación de los principales clientes por transacciones, el monto total de créditos por ciudad, y el análisis de clientes con deudas y sus transacciones. También se abordan aspectos como la actividad de clientes, la proporción de créditos en distintos estados y el monto promedio de créditos por edad.

Cargado por

percy tomairo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas5 páginas

Practica SQL

El documento presenta diversas consultas SQL para analizar datos de clientes y transacciones. Incluye la identificación de los principales clientes por transacciones, el monto total de créditos por ciudad, y el análisis de clientes con deudas y sus transacciones. También se abordan aspectos como la actividad de clientes, la proporción de créditos en distintos estados y el monto promedio de créditos por edad.

Cargado por

percy tomairo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

6.

Top Clientes por Transacciones


Pregunta:
¿Cuáles son los 7 clientes con más transacciones realizadas, cuál es el
monto total de sus transacciones, y cuál es el tipo de transacción más
común para cada uno de ellos?

sql
Copiar
Editar
SELECT TOP 7
t.cliente_id,
t.total_transacciones,
t.monto_total,
(
SELECT TOP 1 t2.tipo_transaccion
FROM transacciones t2
WHERE t2.cliente_id = t.cliente_id
GROUP BY t2.tipo_transaccion
ORDER BY COUNT(*) DESC
) AS tipo_transaccion_mas_comun
FROM (
SELECT
cliente_id,
COUNT(*) AS total_transacciones,
SUM(monto) AS monto_total
FROM transacciones
GROUP BY cliente_id
) t
ORDER BY t.total_transacciones DESC;
7. Monto Total de Créditos por Ciudad
Pregunta:
¿Cuál es el monto total de créditos aprobados por ciudad y el número
promedio de créditos aprobados por cliente en cada ciudad?

sql
Copiar
Editar
SELECT
ciudad,
SUM(monto_por_cliente) AS monto_total_creditos,
(
SELECT AVG(cant_creditos*1.0)
FROM (
SELECT cliente_id, COUNT(*) AS cant_creditos
FROM creditos cr2
WHERE [Link] = [Link]
AND estado = 'aprobado'
GROUP BY cliente_id
) AS sub
) AS promedio_creditos_por_cliente
FROM (
SELECT
ciudad,
cliente_id,
SUM(monto) AS monto_por_cliente,
COUNT(*) AS cant_creditos
FROM creditos
WHERE estado = 'aprobado'
GROUP BY ciudad, cliente_id
) cr1
GROUP BY ciudad;
8. Clientes con Mayor Deuda
Pregunta:
¿Quiénes son los 3 clientes con la mayor cantidad de deuda (monto total de
créditos aprobados), y cuál es el promedio de sus transacciones en el
último año?

sql
Copiar
Editar
SELECT
t1.cliente_id,
t1.total_deuda,
(
SELECT AVG(monto)
FROM transacciones t2
WHERE t2.cliente_id = t1.cliente_id
AND fecha >= DATEADD(YEAR, -1, GETDATE())
) AS promedio_transacciones_ultimo_ano
FROM (
SELECT cliente_id, SUM(monto) AS total_deuda
FROM creditos
WHERE estado = 'aprobado'
GROUP BY cliente_id
) t1
WHERE t1.cliente_id IN (
SELECT TOP 3 cliente_id
FROM (
SELECT cliente_id, SUM(monto) AS total_deuda
FROM creditos
WHERE estado = 'aprobado'
GROUP BY cliente_id
) t2
ORDER BY t2.total_deuda DESC
)
ORDER BY t1.total_deuda DESC;
9. Transacciones por Tipo y Mes
Pregunta:
¿Cuál es el número de transacciones de cada tipo (retiro/deposito) por mes
en los últimos 2 años, y cuál es el monto promedio de transacciones de
cada tipo por mes?

sql
Copiar
Editar
SELECT
YEAR(fecha) AS anio,
MONTH(fecha) AS mes,
tipo_transaccion,
COUNT(*) AS cantidad_transacciones,
AVG(monto) AS monto_promedio
FROM transacciones
WHERE fecha >= DATEADD(YEAR, -2, GETDATE())
GROUP BY YEAR(fecha), MONTH(fecha), tipo_transaccion
ORDER BY anio, mes, tipo_transaccion;
10. Clientes sin Créditos
Pregunta:
¿Cuántos clientes no tienen ningún crédito y cuántos de ellos han
realizado al menos una transacción en el último año?

sql
Copiar
Editar
SELECT
-- Clientes sin créditos aprobados
(
SELECT COUNT(*)
FROM clientes c
WHERE NOT EXISTS (
SELECT 1 FROM creditos cr
WHERE cr.cliente_id = c.cliente_id
AND [Link] = 'aprobado'
)
) AS total_clientes_sin_creditos,
-- De esos, los que han realizado al menos una transacción en el
último año
(
SELECT COUNT(*)
FROM clientes c
WHERE NOT EXISTS (
SELECT 1 FROM creditos cr
WHERE cr.cliente_id = c.cliente_id
AND [Link] = 'aprobado'
)
AND EXISTS (
SELECT 1 FROM transacciones t
WHERE t.cliente_id = c.cliente_id
AND [Link] >= DATEADD(YEAR, -1, GETDATE())
)
) AS clientes_sin_creditos_con_transaccion;
11. Créditos por Estado
Pregunta:
¿Cuál es la proporción de créditos en cada estado (aprobado/rechazado/en
proceso) y cuál es la distribución de montos para cada estado?

sql
Copiar
Editar
SELECT
estado,
COUNT(*) AS cantidad_creditos,
CAST(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM creditos) AS
DECIMAL(5,2)) AS porcentaje,
MIN(monto) AS monto_minimo,
MAX(monto) AS monto_maximo,
AVG(monto) AS monto_promedio
FROM creditos
GROUP BY estado;
12. Monto Máximo y Mínimo de Transacciones
Pregunta:
¿Cuál es el monto máximo y mínimo de las transacciones realizadas en el
último mes, desglosado por tipo de transacción?

sql
Copiar
Editar
SELECT
tipo_transaccion,
MIN(monto) AS monto_minimo,
MAX(monto) AS monto_maximo
FROM transacciones
WHERE fecha >= DATEADD(MONTH, -1, GETDATE())
GROUP BY tipo_transaccion;
13. Clientes Activos
Pregunta:
¿Cuántos clientes han realizado al menos una transacción en el último mes,
y cuál es el promedio de transacciones por cliente en ese periodo?
sql
Copiar
Editar
SELECT
COUNT(*) AS clientes_activos,
AVG(transacciones_por_cliente * 1.0) AS
promedio_transacciones_por_cliente
FROM (
SELECT cliente_id, COUNT(*) AS transacciones_por_cliente
FROM transacciones
WHERE fecha >= DATEADD(MONTH, -1, GETDATE())
GROUP BY cliente_id
) AS sub;
14. Monto Promedio de Créditos por Edad
Pregunta:
¿Cuál es el monto promedio de los créditos aprobados para cada rango de
edad (18-35, 36-50, 51-70), y cuántos clientes hay en cada rango?

sql
Copiar
Editar
SELECT
Rango_Edad,
AVG(monto) AS monto_promedio_creditos,
COUNT(DISTINCT cliente_id) AS cantidad_clientes
FROM (
SELECT
cl.cliente_id,
[Link],
[Link],
CASE
WHEN [Link] BETWEEN 18 AND 35 THEN '18-35'
WHEN [Link] BETWEEN 36 AND 50 THEN '36-50'
WHEN [Link] BETWEEN 51 AND 70 THEN '51-70'
ELSE 'Otro'
END AS Rango_Edad
FROM clientes cl
JOIN creditos cr ON cl.cliente_id = cr.cliente_id
WHERE [Link] = 'aprobado'
) AS sub
GROUP BY Rango_Edad;
15. Clientes con Transacciones y Créditos
Pregunta:
¿Cuántos clientes han realizado al menos una transacción y tienen al menos
un crédito aprobado en el último año?

sql
Copiar
Editar
SELECT COUNT(*) AS clientes_con_transacciones_y_creditos
FROM clientes c
WHERE EXISTS (
SELECT 1
FROM transacciones t
WHERE t.cliente_id = c.cliente_id
AND [Link] >= DATEADD(YEAR, -1, GETDATE())
)
AND EXISTS (
SELECT 1
FROM creditos cr
WHERE cr.cliente_id = c.cliente_id
AND [Link] = 'aprobado'
AND cr.fecha_credito >= DATEADD(YEAR, -1, GETDATE())
);

También podría gustarte