De agregaciónestándar SQL

SUM

Suma los valores de muchas filas y devuelve el total.

Sintaxis

SUM(<expresión>)
SUM(DISTINCT <expresión>)

Una función de agregación: convierte un grupo de filas en un solo número, la suma. Se salta NULL. Junto con GROUP BY calcula la suma por separado para cada grupo: ingresos por meses, salarios por departamentos.

Datos para los ejemplos

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

orders

idcreated_atamount
12026-07-03 10:15:00120.50
22026-07-28 18:40:0080.25
32026-08-09 09:05:00199.99
42026-08-21 14:30:0045.00
52026-09-02 11:00:0064.75

Estas tablas ya están creadas en el entorno de pruebas y los ejemplos de abajo las usan. ¿Quieres repetirlo en tu propia base de datos? Copia el SQL.

Los ingresos totales
SELECT SUM(amount) AS revenue
FROM orders;
revenue
510.49
La masa salarial de cada departamento
SELECT department, SUM(salary) AS payroll
FROM employees
GROUP BY department
ORDER BY department;
departmentpayroll
backend2200
design1200
frontend2300
Cuando los datos tienen NULL
SELECT SUM(bonus) AS total_bonus,
SUM(salary + bonus) AS salary_plus_bonus,
SUM(salary) + SUM(bonus) AS sum_of_sums
FROM employees;
total_bonussalary_plus_bonussum_of_sums
65044006350

salary + bonus da NULL para Liam y Noah, así que sus salarios quedaron fuera de la segunda suma por completo: 4400 en lugar de 6350.

Ten en cuenta

Si no hay filas o todos los valores son NULL, el resultado es NULL, no 0. Si necesitas un cero: COALESCE(SUM(amount), 0).

Un NULL dentro de una expresión «se come» toda la fila: SUM(salary + bonus) no cuenta el salario de quienes no tienen bonus. Escribe SUM(salary + COALESCE(bonus, 0)).

Funciones relacionadas

Más detalles en el curso