DÍA 20Análisis de resultados · SQL para Análisis de Datos

Clasifica pagos en bandas ilustrativas y cuenta cuántos registros caen en cada una.

Día 20 18 minIntermedio

Crear categorías con CASE

Objetivos

Vas a derivar una etiqueta de cada importe y resumir los pagos por esa etiqueta.

Concepto

CASE prueba condiciones de arriba hacia abajo y devuelve el resultado de la primera condición verdadera. ELSE cubre lo que queda.

En este ejemplo las bandas de importe son solo una clasificación para practicar SQL. No son categorías contables ni reglas de negocio oficiales del dataset Sakila.

Ejemplo

SELECT
  CASE
    WHEN amount < 5.00 THEN 'menor a 5'
    WHEN amount < 10.00 THEN 'de 5 a menos de 10'
    ELSE '10 o más'
  END AS amount_band,
  COUNT(*) AS payment_count,
  ROUND(SUM(amount), 2) AS total_amount
FROM payment
GROUP BY amount_band
ORDER BY MIN(amount);

La segunda condición solo se evalúa cuando el importe no fue menor de cinco. En MySQL puedes agrupar por el alias definido en el SELECT. MIN(amount) ordena las bandas por su importe mínimo, no alfabéticamente.

Práctica guiada

  1. Cambia el primer umbral a 4.00.
  2. Añade AVG(amount) redondeado a dos decimales.
  3. Explica por qué las bandas sirven para explorar, pero no definen por sí solas un criterio de negocio.

Reto

Clasifica cada pago como pequeño cuando sea menor que 3.00 y resto en caso contrario. Cuenta los pagos en cada grupo y ordena los grupos de menor a mayor importe mínimo.

Quiz

¿Qué resultado devuelve CASE si ninguna condición WHEN se cumple y hay un ELSE?

  • A. El valor de ELSE.
  • B. La primera columna de la tabla.
  • C. Siempre NULL.

Respuesta: A. ELSE define el resultado para los casos restantes.

Comprobación

Ya puedes crear grupos con una regla visible. En la siguiente lección presentarás los valores ausentes sin modificar los datos originales; más adelante organizarás consultas en pasos con nombre.

TU PROGRESO

Cargando estado…