0Pricing
SQL Academy · Lección

GROUP BY con una o varias columnas

Agrupe filas por una o varias columnas para producir subtotales y desgloses por categoría, y aprenda a interpretar los planes de consultas GROUP BY.

GROUP BY con una o varias columnas es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 2 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é hace GROUP BY

GROUP BY divide las filas en grupos según uno o más valores de columna y, después, aplica funciones de agregación a cada grupo.

Agrupación por una columna

Total de pedidos por usuario:

SELECT user_id, COUNT(*) AS order_count, SUM(total) AS revenue
FROM orders
GROUP BY user_id
ORDER BY revenue DESC;

Agrupación por varias columnas

Subgrupos por categoría y país:

SELECT country, category, SUM(total) AS revenue
FROM orders o
JOIN products p ON p.id = o.product_id
JOIN users   u ON u.id = o.user_id
GROUP BY country, category
ORDER BY country, revenue DESC;

Toda columna seleccionada debe agruparse o agregarse

Regla del estándar SQL:

-- WRONG — email is neither grouped nor aggregated:
SELECT user_id, email, COUNT(*)
FROM orders
GROUP BY user_id;     -- ERROR

-- RIGHT — group by both, or use an aggregate:
SELECT user_id, MAX(email) AS email, COUNT(*)
FROM orders
GROUP BY user_id;

GROUP BY mediante una expresión

Agrupe por el resultado de una expresión (por ejemplo, un intervalo mensual):

SELECT date_trunc('month', created_at) AS month, SUM(total)
FROM orders
GROUP BY date_trunc('month', created_at)
ORDER BY month;

GROUP BY mediante posición o alias

Puede agrupar por la posición o el alias de una lista SELECT (PostgreSQL):

SELECT date_trunc('month', created_at) AS month, SUM(total)
FROM orders
GROUP BY month             -- alias
ORDER BY 1;                -- position

Conjuntos de agrupación, ROLLUP y CUBE

Calcule varias agrupaciones en una sola consulta, ideal para subtotales:

SELECT country, category, SUM(total)
FROM orders o JOIN ...
GROUP BY ROLLUP (country, category);

-- Returns:  per (country, category),  per country,  grand total

Los grupos vacíos no existen

GROUP BY solo devuelve grupos que contienen al menos una fila. Si desea todas las categorías (incluidas las que tienen cero pedidos), haga un LEFT JOIN desde la lista maestra y realice la agregación.

GROUP BY e índices

El planificador puede usar una agregación por hash (crear una tabla hash de grupos) o una estrategia de ordenación y agrupación. Los índices en la columna de agrupación pueden acelerar el segundo enfoque.

Funciones de ventana frente a GROUP BY

GROUP BY combina varias filas en una sola. Las funciones de ventana añaden columnas agregadas y conservan todas las filas. Elija la herramienta adecuada; este tema se trata en Window Functions Deep Dive.

Alias en HAVING frente a WHERE

Orden lógico: FROM → WHERE → GROUP BY → HAVING → SELECT. WHERE no puede acceder a las agregaciones; HAVING sí.

Resumen

GROUP BY es la herramienta fundamental de los informes.

  • Toda columna seleccionada debe agruparse o agregarse
  • Agrupe por columnas, expresiones o alias
  • Use ROLLUP/CUBE/GROUPING SETS para tablas cruzadas

Comprobación rápida

En una consulta GROUP BY country, ¿puede la lista SELECT incluir una columna city que no esté agregada ni agrupada?

Preguntas frecuentes

¿La lección «GROUP BY con una o varias columnas» es gratis?

Sí — el texto completo de «GROUP BY con una o varias columnas» 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 «GROUP BY con una o varias columnas»?

Agrupe filas por una o varias columnas para producir subtotales y desgloses por categoría, y aprenda a interpretar los planes de consultas GROUP BY. 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 2 de 4.

¿Cuánto tiempo toma la lección «GROUP BY con una o varias columnas»?

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

  1. COUNT, SUM, AVG, MIN y MAX
  2. GROUP BY con una o varias columnas
  3. HAVING frente a WHERE
  4. Errores habituales: valores NULL en agregaciones
← Volver a SQL Academy