La función SQL Sum() es una función agregada en SQL que devuelve los valores totales de una expresión. La expresión puede ser numérica o puede ser una expresión.
Sintaxis:
SELECT SUM(columnname) FROM table_name WHERE conditions; Considere las tablas existentes que tienen los siguientes registros:
Tabla:Empleados
| 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 |
Ejemplo 1: Escriba una consulta que sume el salario total de los empleados de la tabla de empleados.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES; La expresión Sum mostrará la suma del salario total. s
Salida:
| SALARIO |
| 742000 |
Ejemplo 2: Escriba una consulta para sumar el salario de los empleados cuya ciudad es Pune de la tabla de empleados.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE'; Esta consulta hará una suma del salario de los empleados cuya ciudad es Pune.
Salida:
| CIUDAD | SALARIO |
| PUNE | 186500 |
Ejemplo 3: Escriba una consulta para sumar el salario de los empleados de la tabla de empleados cuyo departamento es Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE'; Salida:
| DEPARTAMENTO | SALARIO |
| ORACULO | 181000 |
Ejemplo 4: Escriba una consulta para sumar el salario de los empleados de la tabla de empleados cuyo departamento incluye Oracle y FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW'); Salida:
| SALARIO |
| 347500 |
Ejemplo 4: Escriba una consulta para sumar el salario de los empleados de la tabla de empleados cuyo salario sea superior a 50000 y la ciudad incluya Pune y Mumbai.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY; Salida :
| CIUDAD | EMPLEADO_SALARIO |
| PUNE | 119000 |
| MUMBAI | 186500 |
Ejemplo 5: Escriba una consulta para sumar el salario de los empleados de la tabla de empleados cuyo salario sea superior a 50000 o la ciudad incluya Oracle, FMW y grupo por departamento.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT; Salida:
| DEPARTAMENTO | EMPLEADO_SALARIO |
| C# | 60000 |
| FMW | 166500 |
| JAVA | 168500 |
| ORACULO | 181000 |
| PRUEBA | 116000 |
Ejemplo 6: Escriba una consulta para sumar el salario de los empleados de la tabla de empleados utilizando ciudades únicas de empleados y grupos por ciudad.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY; Salida:
| CIUDAD | EMPLEADO_SALARIO |
| CHANDIGARH | 55500 |
| DELHI | 115500 |
| JAIPUR | 50500 |
| MUMBAI | 169000 |
| NOIDA | 114500 |
| PUNE | 121000 |
Ejemplo 7: Escriba una consulta para sumar el salario de los empleados de la tabla de empleados que tienen un departamento único y un grupo por departamento.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
| DEPARTAMENTO | EMPLEADO_SALARIO |
| C# | 110000 |
| FMW | 116000 |
| JAVA | 168500 |
| ORACULO | 181000 |
| PRUEBA | 116000 |
Ejemplo 8: Escriba una consulta para sumar el salario de los empleados de la tabla de empleados y agrupe por ciudad, departamento.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT; Salida:
| CIUDAD | DEPARTAMENTO | EMPLEADO_SALARIO |
| CHANDIGARH | ORACULO | 55500 |
| DELHI | ORACULO | 60000 |
| DELHI | PRUEBA | 55500 |
| JAIPUR | FMW | 101000 |
| MUMBAI | C# | 50000 |
| MUMBAI | JAVA | 58500 |
| MUMBAI | PRUEBA | 60500 |
| NOIDA | C# | 60000 |
| NOIDA | JAVA | 54500 |
| PUNE | FMW | 65500 |
| PUNE | JAVA | 55500 |
| PUNE | ORACULO | 65500 |
Ejemplo 9: Escriba una consulta para sumar el salario de los empleados del grupo de tablas de empleados por ciudad donde el salario agregado es mayor a 75000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000; Salida:
| CIUDAD | SALARIO |
| DELHI | 115500 |
| JAIPUR | 101000 |
| MUMBAI | 169000 |
| NOIDA | 114500 |
| PUNE | 186500 |
Como vemos, solo tiene ciudades cuyo salario agregado es superior a 75000.
Ejemplo 10: Escriba una consulta para sumar el salario de un empleado con una computadora portátil y agrupe por departamento.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT; Salida:
| DEPARTAMENTO | SALARIO |
| C# | 60000 |
| JAVA | 113000 |
| ORACULO | 60000 |
| PRUEBA | 55500 |
Ejemplo 11: Escriba una consulta para sumar el salario de los empleados con computadora portátil y agrupe por departamento donde el salario agregado es mayor a 58000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000; Salida:
| DEPARTAMENTO | SALARIO |
| C# | 60000 |
| JAVA | 113000 |
| ORACULO | 60000 |