Agrupación y etiquetado de datos
Convierta valores en categorías
Agrupación y etiquetado de datos es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué es la agrupación por categorías?
La agrupación por categorías consiste en agrupar valores sin procesar en categorías con nombre: convertir números, fechas o códigos en etiquetas comprensibles.
En lugar de mostrar una puntuación de 87, muestra "Buena". En lugar de mostrar una edad de 14 años, muestra "Adolescente". La expresión CASE es su herramienta principal para hacerlo.
Tabla de ejemplo: pedidos
Usaremos una tabla de orders durante toda esta lección. Cada fila contiene el importe de un pedido y un código de estado.
Ejecute la consulta siguiente para ver los datos con los que trabajaremos.
SELECT id, customer, amount, status
FROM orders
ORDER BY id;Asignar etiquetas con CASE WHEN
El patrón más sencillo de agrupación por categorías comprueba una condición y asigna una etiqueta. El bloque CASE WHEN ... THEN ... ELSE ... END devuelve una cadena nueva para cada fila.
Aquí etiquetamos cada pedido como 'Grande' o 'Pequeño' según su importe.
SELECT id,
amount,
CASE
WHEN amount >= 500 THEN 'Large'
ELSE 'Small'
END AS order_size
FROM orders;Varias categorías con cadenas de WHEN
Puede añadir tantas cláusulas WHEN como necesite. SQL las comprueba de arriba abajo y se detiene en la primera coincidencia.
Este ejemplo divide los importes en tres categorías: Pequeño, Mediano y Grande.
SELECT id,
amount,
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;Agrupar valores de texto por categorías
Las categorías no se limitan a los números. Puede hacer coincidir valores de texto exactos y reemplazarlos por etiquetas más claras.
Aquí, los códigos de estado sin procesar 'P', 'S' y 'C' se convierten en palabras comprensibles.
SELECT id,
status,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;Usar la forma CASE simple
Cuando compara una columna con varios valores fijos, la forma CASE simple (CASE column WHEN value ...) es más corta y fácil de leer que repetir el nombre de la columna en cada cláusula WHEN.
El resultado es idéntico al de la forma buscada.
SELECT id,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;Agrupar por categorías dentro de GROUP BY
Una vez que tenga una etiqueta de categoría, puede agrupar por ella para contar cuántas filas pertenecen a cada categoría. Coloque toda la expresión CASE dentro de GROUP BY.
Esta consulta muestra cuántos pedidos son Pequeños, Medianos o Grandes.
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier,
COUNT(*) AS total_orders
FROM orders
GROUP BY
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END;Agrupar por categorías con un alias de subconsulta
Repetir un bloque CASE largo en GROUP BY resulta verboso. Un enfoque más limpio consiste en envolver la consulta principal en una subconsulta (o CTE) para poder hacer referencia directamente al alias.
SELECT order_tier, COUNT(*) AS total_orders
FROM (
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders
) AS bucketed
GROUP BY order_tier;Categorías numéricas: grupos de edad
Agrupar por edad es un caso de uso clásico de la agrupación por categorías. La consulta siguiente asigna cada cliente a un grupo de edad con nombre.
Observe que las condiciones van de menor a mayor: SQL se detiene en el primer WHEN que sea verdadero, por lo que el orden es importante.
SELECT name,
age,
CASE
WHEN age < 13 THEN 'Child'
WHEN age < 18 THEN 'Teen'
WHEN age < 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM customers;Asignar etiquetas a los NULL en una categoría
Si un valor es NULL, ninguna condición WHEN (salvo IS NULL) coincidirá con él. Sin una comprobación explícita, los NULL pasan a la rama ELSE.
Añada una cláusula WHEN column IS NULL para asignar a los NULL su propia etiqueta.
SELECT id,
amount,
CASE
WHEN amount IS NULL THEN 'No Data'
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;Agrupar por categorías en ORDER BY
También puede usar una expresión CASE directamente dentro de ORDER BY para controlar la prioridad de ordenación sin añadir una columna nueva.
El ejemplo siguiente muestra siempre primero los pedidos Pendientes, después los Enviados y, por último, los Cancelados.
SELECT id, customer, status
FROM orders
ORDER BY
CASE status
WHEN 'P' THEN 1
WHEN 'S' THEN 2
WHEN 'C' THEN 3
ELSE 4
END;Comprobación rápida
Compruebe su comprensión de la agrupación por categorías y la asignación de etiquetas con CASE.
Repaso de la lección
¡Excelente trabajo! Esto es lo que aprendió sobre la agrupación por categorías y la asignación de etiquetas:
- La agrupación por categorías transforma valores sin procesar en categorías con nombre mediante
CASE WHEN. - Las cadenas de cláusulas
WHENcrean varias categorías; SQL se detiene en la primera coincidencia. - La forma CASE simple (
CASE col WHEN val) es ideal para comparar una columna con valores fijos. - Puede usar una expresión
CASEen GROUP BY para contar las filas de cada categoría. - Gestione siempre los valores
NULLexplícitamente conWHEN col IS NULLpara asignarles una etiqueta significativa. CASEtambién funciona dentro deORDER BYpara definir una prioridad de ordenación personalizada.
La agrupación por categorías hace que los informes sean mucho más fáciles de leer, ya que reemplaza códigos y números sin procesar por etiquetas claras y descriptivas.
Preguntas frecuentes
¿La lección «Agrupación y etiquetado de datos» es gratis?
Sí — el texto completo de «Agrupación y etiquetado de datos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Agrupación y etiquetado de datos»?
Convierta valores en categorías Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SQL Academy?
No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Agrupación y etiquetado de datos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SQL Academy?
Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- La expresión CASE
- CASE buscado frente a CASE simple
- Agrupación y etiquetado de datos
- CASE en ORDER BY y agregaciones