La función SUM en SQL

¿Qué es la función SUM en SQL?

  SUM en SQL

La función SUM en SQL es una función agregada que se utiliza para calcular el total de los valores de una columna en particular. Generalmente, se emplea para sumar valores numéricos en bases de datos, como precios, cantidades, salarios, etc.

¿Cómo Funciona SUM en SQL?

La función SUM toma como argumento una columna numérica y devuelve la suma de todos los valores en esa columna. Se utiliza comúnmente en combinación con otras cláusulas como GROUP BY para calcular totales en diferentes categorías.

  Imagina el siguiente caso

Imagina que tenemos dos tablas: ventas y empleados. La tabla ventas almacena información sobre las transacciones realizadas, incluyendo el monto total de cada venta y la fecha en que se realizó. Por otro lado, la tabla empleados contiene datos sobre los empleados de la empresa, como sus nombres y identificadores únicos. Con estas tablas, podemos realizar diversas consultas SQL para analizar el rendimiento de las ventas y la contribución de cada empleado al total de ingresos de la empresa.

Tabla: ventas

bash
| id  | total_venta | fecha_venta   | region    | cliente_id |
|-----|-------------|---------------|-----------|------------|
| 1   | 100.00      | 2023-01-05    | Norte     |       1    |
| 2   | 250.50      | 2023-01-10    | Sur       |       1    |
| 3   | 300.75      | 2023-02-15    | Norte     |       2    |
| 4   | 150.00      | 2023-03-20    | Este      |       3    |
| 5   | 500.00      | 2023-04-25    | Sur       |       3    |

Tabla: empleados

bash
| id  | nombre          | salario |
|-----|-----------------|---------|
| 1   | Juan Pérez      | 3000.00 |
| 2   | María González  | 2500.00 |
| 3   | Pedro Rodríguez | 2700.00 |
| 4   | Ana Martínez    | 3200.00 |
| 5   | Luis Fernández  | 2900.00 |

Sintaxis Básica

sql
SELECT SUM(nombre_columna) FROM nombre_tabla;
  • nombre_columna: Es la columna de la tabla cuyos valores numéricos deseas sumar.
  • nombre_tabla: Es la tabla donde se encuentran los datos.

Ejemplo Básico

Supongamos que tienes una tabla de ventas llamada ventas, y quieres saber el total de las ventas.

sql
SELECT SUM(total_venta) AS total_ventas FROM ventas;

Este comando devuelve la suma de todas las ventas en la columna total_venta.

Respuesta:

bash
| total_ventas |
|--------------|
| 1301.25      |

Casos de Uso

1. Calcular el Total de Ventas

Puedes usar SUM para calcular el total de ventas en un negocio o en un rango de fechas:

sql
SELECT SUM(total_venta) AS total_ventas
FROM ventas
WHERE fecha_venta BETWEEN '2023-01-01' AND '2023-12-31';

Respuesta:

bash
| total_ventas |
  |--------------|
  | 1301.25      |

2. Sumar Salarios de los Empleados

Para sumar los salarios de todos los empleados en una empresa, puedes usar:

sql
SELECT SUM(salario) AS total_salarios
FROM empleados;

Respuesta:

bash
| total_salarios |
|----------------|
|  14300.00      |

3. Calcular Sumas Agrupadas

Si necesitas sumar valores basados en una categoría, puedes usar GROUP BY junto con SUM. Por ejemplo, para calcular el total de ventas por región:

sql
SELECT region, SUM(total_venta) AS total_ventas
FROM ventas
GROUP BY region;

Respuesta:

bash
| region | total_ventas |
|--------|--------------|
| Norte  | 400.75       |  -- (100.00 + 300.75)
| Sur    | 750.50       |  -- (250.50 + 500.00)
| Este   | 150.00       |  -- (solo hay una venta en esta región)

4. Filtrar Resultados con HAVING

Puedes utilizar SUM junto con la cláusula HAVING para filtrar resultados en base a la suma calculada:

sql
SELECT cliente_id, SUM(total_venta) AS total_ventas
FROM ventas
GROUP BY cliente_id
HAVING SUM(total_venta) > 10000;

Esto te devuelve solo los clientes con ventas totales mayores a 10,000.

Respuesta:

bash
| cliente_id | total_ventas |
|------------|--------------|
| 1          | 11000.00     | -- (5000.00 + 6000.00)
| 2          | 7000.00      | -- No se muestra porque no excede 10000
| 3          | 7000.00      | -- No se muestra porque no excede 10000
  Consideraciones Importantes

  • La función SUM solo puede utilizarse con columnas numéricas.
  • Si en la columna hay valores NULL, estos no se toman en cuenta al calcular la suma.
  • SUM se suele combinar con funciones como AVG (promedio), COUNT (contar), y MAX (máximo) para obtener un análisis más detallado de los datos.