DÍA 28Subconsultas y CTE · SQL para Análisis de Datos

Resume pagos por cliente y compara la subconsulta con una agregación y un JOIN.

Día 28 21 minIntermedio

Calcular un resumen con una subconsulta correlacionada

Objetivos

Al terminar podrás explicar cómo una consulta interior usa una clave de la fila exterior para calcular un valor relacionado.

Concepto

Una subconsulta está correlacionada cuando usa una columna de la consulta exterior. Para cada cliente, las consultas internas siguientes cuentan y suman únicamente sus pagos.

El patrón es fácil de leer en algunos problemas, pero puede repetir trabajo para muchas filas. Un GROUP BY en un CTE unido a customer puede expresar el mismo resumen en pasos; compara claridad y prueba el rendimiento con el volumen real antes de elegir.

Ejemplo

SELECT
  c.customer_id,
  (
    SELECT COUNT(*)
    FROM payment AS p
    WHERE p.customer_id = c.customer_id
  ) AS payment_count,
  (
    SELECT ROUND(SUM(p.amount), 2)
    FROM payment AS p
    WHERE p.customer_id = c.customer_id
  ) AS total_paid
FROM customer AS c
ORDER BY total_paid DESC, c.customer_id
LIMIT 10;

c.customer_id conecta cada subconsulta con la fila exterior. El resultado final conserva una fila por cliente, incluso para un cliente cuyo resumen de pagos sea cero o nulo.

Práctica guiada

  1. Quita una de las dos subconsultas internas y observa qué métrica sigue disponible.
  2. Escribe un CTE que agrupe pagos por customer_id y únelo con customer.
  3. Compara ambos resultados y verifica conteos y sumas.

Reto

Calcula para cada miembro del personal la cantidad de pagos procesados usando una subconsulta correlacionada. Después plantea una versión con GROUP BY y describe cuál resulta más clara para una lista larga.

Quiz

¿Qué hace que la subconsulta del ejemplo sea correlacionada?

  • A. Se refiere a c.customer_id de la consulta exterior.
  • B. Devuelve todas las columnas de payment.
  • C. Agrupa clientes dentro de una tabla permanente.

Respuesta: A. La consulta interior usa la fila exterior para filtrar sus pagos.

Comprobación

Ya puedes comparar CTE, subconsultas y JOIN según el problema. El siguiente módulo analiza fechas con intervalos precisos y funciones de ventana.

TU PROGRESO

Cargando estado…