Cuando hay una gran cantidad de datos, a menudo vemos la posibilidad de manipularlos de acuerdo con nuestros requisitos. La cláusula GROUP BY es una de esas declaraciones en SQL, que se utiliza para agrupar los datos en función de unas pocas columnas o de condiciones. En este artículo sobre la instrucción SQL GROUP BY, analizaré algunas formas de usar las instrucciones GROUP BY en la siguiente secuencia:
- Declaración GROUP BY
- Sintaxis
- Ejemplos:
- Utilice GROUP BY en una sola columna
- AGRUPAR POR en varias columnas
- Utilice GROUP BY con ORDER BY
- GROUP BY con cláusula HAVING
- Utilice GROUP BY con JOINS
Antes de pasar a los ejemplos sobre cómo usar la cláusula GROUP BY, comprendamos qué es GROUP BY en SQL y su sintaxis.
Sentencia SQL GROUP BY
Esta declaración se usa para agrupar registros que tienen los mismos valores. La declaración GROUP BY se usa a menudo con las funciones agregadas para agrupar los resultados por una o más columnas. Aparte de esto, la cláusula GROUP BY también se usa con la cláusula HAVING y JOINS para agrupar el conjunto de resultados según las condiciones.
Sintaxis de SQL GROUP BY
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
Aquí, puede agregar las funciones agregadas antes de los nombres de las columnas, y también una cláusula HAVING al final de la declaración para mencionar una condición. A continuación, en este artículo sobre SQL GROUP BY, comprendamos cómo implementar esta instrucción.
Ejemplos:
Para su mejor comprensión, he dividido los ejemplos en las siguientes secciones:
- Utilice GROUP BY en una sola columna
- AGRUPAR POR en varias columnas
- Utilice GROUP BY con ORDER BY
- GROUP BY con cláusula HAVING
- Utilice GROUP BY con JOINS
Voy a considerar la siguiente tabla para explicarte los ejemplos:
EmpID | NombreEmp | EmpEmail | Número de teléfono | Salario | Ciudad |
1 | Nidhi | 9955669999 | 50000 | Mumbai | |
2 | Anay | 9875679861 | 55000 | Pune | |
3 | Raúl | 9876543212 | 35000 | Delhi | |
4 | Sonia | 9876543234 | 35000 | Delhi | |
5 | Akash | 9866865686 | 25000 | Mumbai |
Echemos un vistazo a cada uno de ellos.
Usar SQL GROUP BY en una sola columna
Ejemplo:
Escribe una consulta para recuperar el número de empleados en cada ciudad.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City;
Salida:
Verá el siguiente resultado:
Cuenta(EmpID) | Ciudad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Usar SQL GROUP BY en múltiples columnas
Ejemplo:
Escribe una consulta para recuperar el número de empleados que tienen diferentes salarios en cada ciudad.
SELECT City, Salary, Count(*) FROM Employees GROUP BY City, Salary;
Salida:
La tabla tendrá los siguientes datos:
Ciudad | Salario | Recuento(*) |
Delhi | 35000 | 2 |
Mumbai | 25000 | 1 |
Mumbai | 50000 | 1 |
Pune | 55000 | 1 |
Usar SQL GROUP BY con ORDER BY
Cuando usamos la declaración SQL GROUP BY con la cláusula ORDER BY, los valores se ordenan en orden ascendente o descendente.
Ejemplo:
Escribe una consulta para recuperar el número de empleados en cada ciudad, ordenados en orden descendente.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City ORDER BY COUNT(EmpID) DESC;
Salida:
La tabla tendrá los siguientes datos:
Cuenta(EmpID) | Ciudad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Usar SQL GROUP BY con cláusula HAVING
La instrucción SQL GROUP BY se usa con la cláusula 'HAVING' para mencionar condiciones en grupos. Además, dado que no podemos usar las funciones agregadas con la cláusula WHERE, tenemos que usar la cláusula 'HAVING' para usar las funciones agregadas con GROUP BY.
Ejemplo:
Escribe una consulta para recuperar el número de empleados en cada ciudad, con salario> 15000
SELECT COUNT(EmpID), City FROM Employees GROUP BY City HAVING SALARY > 15000;
Salida:
Dado que todos los registros en la tabla Empleado tienen un salario> 15000, veremos la siguiente tabla como salida:
Cuenta(EmpID) | Ciudad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Utilice GROUP BY con JOINS
JOINS son instrucciones SQL que se usan para combinar filas de dos o más tablas, en función de una columna relacionada entre esas tablas. Podemos usar la instrucción SQL GROUP BY para agrupar el conjunto de resultados en función de una columna/columnas. Considere las siguientes tablas para ejecutar las sentencias JOIN con la cláusula SQL GROUP BY.
Tabla de proyectos:
ID del proyecto | EmpID | ID de cliente | FechaProyecto |
2345 | 1 | 4 | 26-01-2019 |
9876 | 2 | 5 | 28-02-2019 |
3456 | 3 | 6 | 12-03-2019 |
Tabla de Clientes:
ID de cliente | Nombre del cliente |
4 | Sanjana |
5 | Rohan |
6 | Arun |
Ejemplo
Escribe una consulta para listar el número de proyectos solicitados por cada cliente:
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID GROUP BY ClientName;
Salida:
La tabla tendrá los siguientes datos:
Nombre del cliente | Proyectos solicitados |
Arun | 1 |
Rohan | 1 |
Sanjana | 1 |
Con eso, llegamos al final del artículo SQL GROUP BY. Mira esto Capacitación en certificación MySQL DBA de Edureka, una empresa de aprendizaje en línea de confianza con una red de de más de 250.000 alumnos satisfechos repartidos por todo el mundo. Este curso lo capacita en los conceptos básicos y las herramientas y técnicas avanzadas para administrar datos y administrar la base de datos MySQL. Incluye aprendizaje práctico sobre conceptos como MySQL Workbench, servidor MySQL, modelado de datos, conector MySQL, diseño de bases de datos, línea de comandos MySQL, funciones MySQL, etc. Al final de la capacitación, podrá crear y administrar su propia base de datos MySQL y administrar datos.
¿Tiene alguna pregunta para nosotros? Menciónelo en la sección de comentarios de este artículo "SQL GROUP BY" y nos pondremos en contacto con usted lo antes posible.