sql >> Base de Datos >  >> RDS >> Database

Cómo usar la cláusula GROUP BY en SQL

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:

1. Cree una nueva base de datos o use una base de datos existente seleccionando la base de datos usando la palabra clave USE seguida del nombre de la base de datos.

2. Cree una nueva tabla dentro de la base de datos seleccionada, o puede usar una tabla ya creada.

3. Si la tabla se creó recientemente, inserte los registros en la base de datos recién creada mediante la consulta INSERT y vea los datos insertados mediante la consulta SELECT sin la cláusula GROUP BY.

4. Ahora, estamos listos para usar la cláusula GROUP BY en las consultas 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.