Tema 10 · Agrupamiento GROUP BY

Agrupamiento de Registros con GROUP BY

Aprende a colapsar filas en categorías lógicas mediante la cláusula GROUP BY para generar reportes por ciudad, nivel de dificultad o períodos de tiempo.

La Cláusula GROUP BY

La sentencia GROUP BY agrupa filas que tienen los mismos valores en columnas especificadas en filas de resumen (por ejemplo, calcular cuántos estudiantes hay en cada ciudad o la edad promedio por nivel).

-- Contar estudiantes por ciudad
SELECT ciudad, COUNT(*) AS total_estudiantes
FROM estudiantes
GROUP BY ciudad;

La Regla de Oro de GROUP BY

¡Regla fundamental de SQL estándar! Toda columna que figure en la cláusula SELECT debe estar incluida en el GROUP BY, a menos que esté envuelta dentro de una función de agregación (como COUNT, AVG o SUM).
-- ✅ CORRECTO: 'nivel' está en GROUP BY y 'precio' está en AVG()
SELECT 
    nivel,
    COUNT(*) AS cantidad_cursos,
    ROUND(AVG(precio), 2) AS precio_promedio
FROM cursos
GROUP BY nivel;

⚡ Reporte de Cursos Agrupados por Nivel de Dificultad

Calcula la cantidad de cursos y el promedio de horas de estudio agrupados por nivel en Kilopolis:

consulta.sql
Solo lectura
-- Métricas de capacitación agrupadas por nivel formativo
SELECT 
    nivel,
    COUNT(*) AS cantidad_cursos,
    ROUND(AVG(precio), 2) AS precio_medio_usd,
    SUM(horas) AS total_horas_nivel
FROM cursos
GROUP BY nivel
ORDER BY cantidad_cursos DESC;
Pruébalo tú mismo » Se abre en una nueva pestaña con ejecución en vivo
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar Manual Completo de SQL & MySQL y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.