logo

GRUPO SQL POR

La cláusula SQL GROUP BY se utiliza para organizar datos idénticos en grupos basados ​​en una o más columnas. Se usa comúnmente con funciones agregadas como COUNT() SUM() AVG() MAX() y MIN() para realizar cálculos en cada grupo de datos.

imagen_frutas' title=

Ejemplo: primero lo haremos crear una base de datos SQL de demostración y una tabla en la que usaremos el comando GROUP BY.

Empleados' loading='lazy' title=

Consulta:



SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;

Producción:

Grupo por consulta' loading='lazy' title=

Sintaxis:

SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;
  • función_agregada: función utilizada para la agregación, p. SUMA() PROMEDIO() CUENTA().
  • nombre_tabla: Nombre de la tabla de la que se seleccionan los datos.
  • condición: Condición opcional para filtrar filas antes de agruparlas (usada con WHERE).
  • columna1 columna2: Columnas sobre las que se aplica la agrupación.

Ejemplos de GRUPO POR

Supongamos que tenemos una tabla de Estudiantes. Insertaremos algunos datos de muestra en esta tabla y luego realizaremos operaciones usando GROUP BY para comprender cómo agrupa filas según una columna y agrega datos.

grupo' loading='lazy' title=

Ejemplo 1: agrupar por columna única

Cuando agrupamos por una sola columna, se combinan las filas con el mismo valor en esa columna. Por ejemplo, la agrupación por materia muestra cuántos estudiantes están matriculados en cada materia.

Consulta:

SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;

Producción:

grupo-1' loading='lazy' title=

Explicación: Cada materia aparece dos veces en la tabla, por lo que el conteo para Matemáticas y Ciencias en inglés es 2.

Ejemplo 2: agrupar por varias columnas

El uso de GROUP BY con varias columnas agrupa filas que comparten los mismos valores en esas columnas. Por ejemplo, agrupar por materia y año combinará filas con el mismo par materia-año y podremos contar cuántos estudiantes pertenecen a cada grupo.

Consulta:

SELECT subject year COUNT(*) FROM Student GROUP BY subject year;

Producción:

estudiantes-grp' loading='lazy' title=

Explicación: Los estudiantes de la misma materia y año se agrupan. Dado que cada par de asignatura y año ocurre dos veces, el conteo es 2 para cada grupo.

Cláusula HAVING en la cláusula GROUP BY

La cláusula HAVING se utiliza para filtrar resultados después de agrupar, especialmente cuando se trabaja con funciones agregadas como SUM() COUNT() o AVG(). A diferencia de DONDE aplica condiciones sobre datos agrupados.

emp' loading='lazy' title=

Ejemplo 1: filtrar por salario total

En esta consulta agrupamos a los empleados por nombre y mostramos solo aquellos cuyo salario total es superior a 50000.

SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; 

Producción

edad-1' loading='lazy' title=

Explicación : En el resultado solo aparecen los empleados cuyo salario total supera los 50000.

Ejemplo 2: Filtrar por salario promedio

En esta consulta agrupamos a los empleados por edad y mostramos solo aquellos grupos de edad donde el salario promedio es superior a 60000.

arquitectura de arranque de primavera
SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;

Producción:

salida-1' loading='lazy' title=

Explicación: Esta consulta agrupa a los empleados por edad y calcula el salario promedio para cada edad. Sólo se muestran aquellos grupos de edad donde el salario promedio es superior a 60000.

Crear cuestionario