En este artículo de SQL, aprenderemos sobre la cláusula GROUP BY y cómo usarla en SQL. También discutiremos el uso de la cláusula GROUP BY con la cláusula WHERE.
¿Qué es la cláusula GROUP BY?
La cláusula GROUP BY es una cláusula SQL utilizada en la instrucción SELECT para administrar los mismos registros de una columna en el grupo mediante funciones SQL.
Sintaxis de la cláusula GROUP BY:
SELECT columnname1, columnname2, columnname3 FROM tablename GROUP BY columnname;
Podemos usar varias columnas de la tabla en la cláusula GROUP BY.
Hay algunos pasos, tenemos que aprender cómo usar la cláusula GROUP BY en la consulta SQL:
Paso 1:Cree una nueva base de datos o use una base de datos ya creada.
Ya he creado una base de datos. Usaré mi nombre de base de datos creado existente, Compañía.
USE Company;
Empresa es el nombre de la base de datos.
Aquellos que no hayan creado una base de datos, sigan la siguiente consulta para crear la base de datos:
CREATE DATABASE database_name;
Después de crear la base de datos, seleccione la base de datos usando la palabra clave USE seguida del nombre de la base de datos.
Paso 2:Cree una nueva tabla o utilice una tabla existente:
Ya he creado una tabla. Usaré la tabla existente denominada Empleados.
Para crear las nuevas tablas, siga la siguiente sintaxis de CREATE TABLE:
CREATE TABLE table_name(
columnname1 datatype(column size),
columnname2 datatype(column size),
columnname3 datatype(column size)
);
Paso 3:inserte los registros en la tabla recién creada usando la consulta INSERT y visualice los registros usando la consulta SELECT.
Utilice la siguiente sintaxis para insertar nuevos registros en la tabla:
INSERT INTO table_name VALUES(value1, value2, value3);
Utilice la siguiente sintaxis para ver los registros de la tabla:
SELECT * FROM table_name;
La siguiente consulta mostrará los registros de Empleados:
SELECT * FROM Employees;
El resultado de la consulta SELECT anterior es:
ID DE EMPLEADO | FIRST_NAME | APELLIDO | SALARIO | CIUDAD | DEPARTAMENTO | ID DE ADMINISTRADOR |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACULO | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACULO | 1 |
2002 | BHAVESH | JAÍN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAÍN | 50000 | BOMBAY | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | BOMBAY | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | BOMBAY | PRUEBA | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORACULO | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | PRUEBA | 4 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | PRUEBA | 4 |
6002 | ATISH | JADHAV | 60500 | BANGALORE | C# | 5 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACULO | 1 |
Paso 4:Estamos listos para usar la cláusula GROUP BY en las consultas
Ahora profundizaremos en la cláusula GROUP BY con la ayuda de ejemplos
Ejemplo 1: Escriba una consulta para mostrar el grupo de registros de empleados por ciudad.
SELECT * FROM EMPLOYEES GROUP BY CITY;
La consulta anterior muestra los registros de los empleados donde un empleado de la misma ciudad se considerará un grupo. Por ejemplo, si hay 10 registros de empleados en la tabla donde 3 son de la ciudad de Pune, 3 son de la ciudad de Mumbai, 2 son de Hyderabad y Bangalore, entonces la consulta anterior agrupará al empleado de la ciudad de Pune como un solo registro, y así sucesivamente. .
El resultado de la consulta anterior:
ID DE EMPLEADO | FIRST_NAME | APELLIDO | SALARIO | CIUDAD | DEPARTAMENTO | ID DE ADMINISTRADOR |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | PRUEBA | 4 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACULO | 1 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORACULO | 1 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2003 | RUCHIKA | JAÍN | 50000 | BOMBAY | C# | 5 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACULO | 1 |

Como podemos ver, los registros de los empleados están agrupados por ciudad y los registros se muestran en orden ascendente de forma predeterminada.
Ejemplo 2: Escriba una consulta para mostrar los registros de los empleados agrupados por salario en orden descendente.
SELECT * FROM EMPLOYEES GROUP BY SALARY DESC;
La consulta anterior muestra los registros de los empleados donde los empleados con el mismo salario se considerarán un grupo y los registros se mostrarán en orden descendente.
El resultado de la consulta anterior:
ID DE EMPLEADO | FIRST_NAME | APELLIDO | SALARIO | CIUDAD | DEPARTAMENTO | ID DE ADMINISTRADOR |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACULO | 1 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACULO | 1 |
4001 | RAJESH | GOUD | 60500 | BOMBAY | PRUEBA | 4 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
3003 | DEEPAM | JAUHARI | 58500 | BOMBAY | JAVA | 3 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACULO | 1 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2003 | RUCHIKA | JAÍN | 50000 | BOMBAY | C# | 5 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |

Como podemos ver, los registros de los empleados están agrupados por salario, y los registros se muestran en orden descendente, como mencionamos al final.
Ejemplo 3: Escriba una consulta para mostrar el grupo de registros de los empleados por salario y ciudad.
SELECT * FROM EMPLOYEES GROUP BY SALARY, CITY;
La consulta anterior muestra los registros de los empleados donde los empleados con el mismo salario y ciudad se considerarán un grupo.
Por ejemplo, suponga que la tabla tiene 10 registros de empleados. A partir de 10 empleados, el salario y la ciudad de 2 empleados coinciden con los de otros dos empleados y el salario y la ciudad del resto de seis empleados no coinciden, entonces los 6 empleados se considerarán como 6 grupos separados, y los 2 empleados que coincidan con otros 2 empleados se considerarán como un grupo . En resumen, se formarán 8 grupos.
El resultado de la consulta anterior:
ID DE EMPLEADO | FIRST_NAME | APELLIDO | SALARIO | CIUDAD | DEPARTAMENTO | ID DE ADMINISTRADOR |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
2003 | RUCHIKA | JAÍN | 50000 | BOMBAY | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | PRUEBA | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACULO | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | PRUEBA | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3003 | DEEPAM | JAUHARI | 58500 | BOMBAY | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORACULO | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
6002 | ATISH | JADHAV | 60500 | BANGALORE | C# | 5 |
4001 | RAJESH | GOUD | 60500 | BOMBAY | PRUEBA | 4 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACULO | 1 |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACULO | 1 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |

Como podemos ver, los registros de los empleados se agrupan por salario y ciudad, y los registros se muestran en orden ascendente por defecto.
Ejemplo 4: Escriba una consulta para mostrar los registros de los empleados por ciudad y departamento.
SELECT * FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
La consulta anterior muestra los registros de los empleados donde los empleados están en la misma ciudad, y el departamento se considerará un grupo.
El resultado de la consulta anterior:
ID DE EMPLEADO | FIRST_NAME | APELLIDO | SALARIO | CIUDAD | DEPARTAMENTO | ID DE ADMINISTRADOR |
6002 | ATISH | JADHAV | 60500 | BANGALORE | C# | 5 |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | PRUEBA | 4 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACULO | 1 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORACULO | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | PRUEBA | 4 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACULO | 1 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2003 | RUCHIKA | JAÍN | 50000 | BOMBAY | C# | 5 |
3003 | DEEPAM | JAUHARI | 58500 | BOMBAY | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | BOMBAY | PRUEBA | 4 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
2002 | BHAVESH | JAÍN | 65500 | PUNE | FMW | 2 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACULO | 1 |

Como podemos ver, los registros de los empleados están agrupados por ciudad y departamento, y los registros se muestran en orden ascendente por defecto.
Ejemplo 5: Escriba una consulta para contar la lista de empleados en cada departamento de la tabla de empleados.
SELECT DEPARTMENT, COUNT(DEPARTMENT) FROM EMPLOYEES GROUP BY DEPARTMENT;
La consulta anterior muestra el recuento de empleados en cada grupo de departamentos por departamento. Al igual que seis empleados trabajan en el departamento de recursos humanos, cinco trabajan en otro departamento.
El resultado de la consulta anterior:
DEPARTAMENTO | CUENTA(DEPARTAMENTO) |
C# | 4 |
FMW | 3 |
JAVA | 4 |
ORACULO | 4 |
PRUEBA | 3 |

Como podemos ver, cuatro empleados trabajan en el Departamento C#, tres trabajan en el Departamento FMW, etc.
Ejemplo 6: Escriba una consulta para contar la lista de empleados de cada ciudad de la tabla de empleados.
SELECT CITY, COUNT(CITY) FROM EMPLOYEES GROUP BY CITY;
La consulta anterior muestra el recuento de empleados en cada grupo de ciudades por ciudad. Por ejemplo, tres empleados trabajan en la ciudad de Pune, cuatro trabajan en otra ciudad, y así sucesivamente.
El resultado de la consulta anterior:
CIUDAD | CUENTA(CIUDAD) |
BANGALORE | 2 |
CHANDIGARH | 2 |
DELHI | 2 |
HIDERABAD | 2 |
JAIPUR | 2 |
MUMBAI | 3 |
NOIDA | 2 |
PUNE | 3 |

Como podemos ver, dos empleados trabajan en la ciudad de Bangalore, tres en la ciudad de Mumbai, etc.
Ejemplo 7: Escriba una consulta para sumar el grupo de salarios de los empleados por ciudad.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY;
Lo anterior se utiliza para sumar los salarios de los empleados agrupados por el nombre de la ciudad. Por ejemplo, para empleados de la misma ciudad, su salario será la suma y se considerará un grupo. Usamos la función de suma agregada seguida de la columna de salario para agregar el salario.
El resultado de la consulta anterior:
CIUDAD | SALARIO |
BANGALORE | 115000 |
CHANDIGARH | 104000 |
DELHI | 115500 |
HIDERABAD | 135000 |
JAIPUR | 101000 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 186500 |

Como podemos ver, el salario total de la ciudad de Bangalore es 115000, el salario total de la ciudad de Chandigarh es 104000, que es la suma de diferentes salarios de empleados, pero desde la ciudad, se utiliza el mismo enfoque para cada ciudad.
Ejemplo 8: Escribe una consulta para encontrar el salario mínimo de cada departamento.
SELECT DEPARTMENT, MIN(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;
La consulta anterior se utiliza para encontrar el salario mínimo del empleado de cada departamento. El salario de uno de los empleados del departamento de Java es de 54500, que es el más bajo de todo el departamento de Java. El mismo 48500 es el salario más bajo pagado al empleado en el departamento de C#.
El resultado de la consulta anterior:
DEPARTAMENTO | MIN(SALARIO) |
C# | 48500 |
FMW | 50500 |
JAVA | 54500 |
ORACULO | 55500 |
PRUEBA | 54500 |

Como podemos ver, 50500 es el salario más bajo pagado a uno de los empleados del departamento de FMW, 55500 es el salario más bajo pagado a uno de los empleados del departamento de ORACLE.
Ejemplo 9: Escribe una consulta para encontrar el salario mínimo de cada ciudad.
SELECT CITY, MAX(SALARY) FROM EMPLOYEES GROUP BY CITY;
La consulta anterior se utiliza para encontrar el salario máximo de cada ciudad. El salario de uno de los empleados de la ciudad de Pune es 65500, que es el más alto en toda la ciudad de Pune, el mismo 60500 es el salario más alto pagado al empleado en la ciudad de Mumbai.
El resultado de la consulta anterior:
CIUDAD | MÁXIMO(SALARIO) |
BANGALORE | 60500 |
CHANDIGARH | 55500 |
DELHI | 60000 |
HIDERABAD | 70000 |
JAIPUR | 50500 |
MUMBAI | 60500 |
NOIDA | 60000 |
PUNE | 65500 |

Como podemos ver, 50500 es el salario más alto pagado a uno de los empleados en la ciudad de Jaipur, 55500 es el salario más alto pagado a uno de los empleados en la ciudad de Chandigarh.