En este tema, aprenderemos cómo utilizar la cláusula GROUP BY en SQL para agrupar filas que tienen valores en común en columnas específicas. Esta técnica es fundamental para realizar operaciones de agregación, como calcular sumas, promedios, conteos, etc., sobre grupos de datos.

Conceptos Clave

  1. Cláusula GROUP BY: Se utiliza para agrupar filas que tienen los mismos valores en columnas especificadas.
  2. Funciones de agregación: Funciones como SUM(), AVG(), COUNT(), MIN(), y MAX() que se aplican a los grupos de datos.
  3. Orden de ejecución: La cláusula GROUP BY se coloca después de la cláusula WHERE y antes de la cláusula ORDER BY.

Sintaxis Básica

SELECT columna1, columna2, función_agregación(columna3)
FROM nombre_tabla
WHERE condición
GROUP BY columna1, columna2
ORDER BY columna1, columna2;

Ejemplo Práctico

Supongamos que tenemos una tabla ventas con la siguiente estructura y datos:

id_venta producto cantidad precio fecha_venta
1 A 10 100 2023-01-01
2 B 5 50 2023-01-02
3 A 7 70 2023-01-03
4 B 3 30 2023-01-04
5 A 8 80 2023-01-05

Queremos saber la cantidad total vendida y el ingreso total por cada producto. Utilizaremos la cláusula GROUP BY junto con las funciones de agregación SUM().

SELECT producto, SUM(cantidad) AS total_cantidad, SUM(precio) AS total_ingreso
FROM ventas
GROUP BY producto;

Explicación del Código

  • SELECT producto, SUM(cantidad) AS total_cantidad, SUM(precio) AS total_ingreso: Seleccionamos la columna producto y aplicamos las funciones de agregación SUM() a las columnas cantidad y precio. Renombramos los resultados con AS para mayor claridad.
  • FROM ventas: Indicamos la tabla de la cual estamos obteniendo los datos.
  • GROUP BY producto: Agrupamos los resultados por la columna producto.

Resultado

producto total_cantidad total_ingreso
A 25 250
B 8 80

Ejercicio Práctico

Ejercicio 1

Dada la siguiente tabla empleados:

id_empleado departamento salario
1 Ventas 5000
2 IT 6000
3 Ventas 5500
4 IT 7000
5 HR 4500

Escribe una consulta SQL para encontrar el salario promedio por departamento.

Solución

SELECT departamento, AVG(salario) AS salario_promedio
FROM empleados
GROUP BY departamento;

Resultado Esperado

departamento salario_promedio
Ventas 5250
IT 6500
HR 4500

Retroalimentación y Consejos

  • Error Común: Olvidar incluir todas las columnas no agregadas en la cláusula GROUP BY. Por ejemplo, si seleccionas producto y fecha_venta, ambas deben estar en GROUP BY.
  • Consejo: Utiliza alias (AS) para renombrar las columnas resultantes de las funciones de agregación, lo que hace que los resultados sean más legibles.
  • Optimización: Asegúrate de que las columnas utilizadas en GROUP BY estén indexadas para mejorar el rendimiento de la consulta.

Conclusión

La cláusula GROUP BY es una herramienta poderosa en SQL que permite agrupar datos y aplicar funciones de agregación para obtener información resumida. Con la práctica, podrás utilizar GROUP BY para realizar análisis complejos y obtener insights valiosos de tus datos. En el próximo tema, exploraremos la cláusula HAVING, que se utiliza para filtrar grupos de datos después de aplicar GROUP BY.

Curso de SQL

Módulo 1: Introducción a SQL

Módulo 2: Consultas básicas de SQL

Módulo 3: Trabajando con múltiples tablas

Módulo 4: Filtrado avanzado de datos

Módulo 5: Manipulación de datos

Módulo 6: Funciones avanzadas de SQL

Módulo 7: Subconsultas y consultas anidadas

Módulo 8: Índices y optimización de rendimiento

Módulo 9: Transacciones y concurrencia

Módulo 10: Temas avanzados

Módulo 11: SQL en la práctica

Módulo 12: Proyecto final

© Copyright 2024. Todos los derechos reservados