Mostrar el nombre del departamento que tiene el salario promedio más alto en SQL Server

En SQL, necesitamos encontrar la información del departamento de la tabla dada que contiene información sobre los empleados. Uno de esos datos es el nombre del departamento que tiene el salario promedio más alto de los empleados que trabajan en él. Usaremos las cláusulas TOP , AVG , ORDER BY , AS , GROUP BY y DESC para lograr esto. Esto se ilustra a continuación. Para este artículo, utilizaremos Microsoft SQL Server como nuestra base de datos.

Paso 1: crear una base de datos. Para esto, use el siguiente comando para crear una base de datos llamada GeeksForGeeks.

Consulta:

CREATE DATABASE GeeksForGeeks

Producción:

Paso 2: use la base de datos GeeksForGeeks. Para esto, use el siguiente comando.

Consulta:

USE GeeksForGeeks

Producción:

Paso 3: Crear una tabla EMPRESA dentro de la base de datos GeeksForGeeks. Esta tabla tiene 4 columnas, a saber, EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_NAME y SALARY que contienen la identificación, el nombre, el departamento y el salario de varios empleados.

Consulta:

CREATE TABLE COMPANY(
EMPLOYEE_ID INT PRIMARY KEY,
EMPLOYEE_NAME VARCHAR(10),
DEPARTMENT_NAME VARCHAR(10),
SALARY INT);

Producción:

Paso 4: Describa la estructura de la tabla EMPRESA.

Consulta:

EXEC SP_COLUMNS COMPANY;

Producción:

Paso 5: Inserte 5 filas en la tabla EMPRESA.

Consulta:

INSERT INTO COMPANY VALUES(1,'RAM','HR',10000);
INSERT INTO COMPANY VALUES(2,'AMRIT','MRKT',20000);
INSERT INTO COMPANY VALUES(3,'RAVI','HR',30000);
INSERT INTO COMPANY VALUES(4,'NITIN','MRKT',40000);
INSERT INTO COMPANY VALUES(5,'VARUN','IT',50000);

Producción:

Paso 6: Muestre todas las filas de la tabla EMPRESA.

Consulta:

SELECT * FROM COMPANY;

Producción:

Paso 7: Muestre el nombre del departamento que tiene el salario promedio más alto obtenido por los empleados que trabajan en ese departamento. Usaremos la función de agregado AVG aquí para calcular el salario promedio (media) de cada departamento. El promedio por departamento se obtiene con la ayuda de la cláusula GROUP BY que agrupa todos los salarios de un departamento específico y luego calcula el promedio. Luego, estos promedios se ordenan en orden descendente utilizando las cláusulas ORDER BY y DESC . Luego, la fila superior se selecciona usando la cláusula TOP seguida de 1 . 1 aquí indica que la consulta devuelve solo 1 fila. También llamamos a la nueva columna del salario por departamento comoMAX_AVG_SALARY usando la cláusula AS que crea una especie de alias.

Sintaxis:

SELECT TOP 1 COLUMN1, AVG(COLUMN2) AS ALIAS
FROM TABLE_NAME
GROUP BY COLUMN1
ORDER BY AVG(COLUMN2) DESC;

Consulta:

SELECT TOP 1 DEPARTMENT_NAME, AVG(SALARY) AS MAX_AVG_SALARY
FROM COMPANY
GROUP BY DEPARTMENT_NAME
ORDER BY AVG(SALARY) DESC;

Nota: Esta consulta devuelve solo 1 fila, es decir, la fila superior entre las filas ordenadas devueltas.

Producción:

Publicación traducida automáticamente

Artículo escrito por abhisri459 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *