· Andrés Ledo · MySQL · Lectura en 7 min
Cómo usar la función SUM en MySQL
¡Desvelamos todos los secretos del comando SUM en MySQL! Acompáñanos en este viaje de aprendizaje y conviértete en un experto con nuestra guía completa.
La función SUM en MySQL es una de las funciones de agregación más útiles y versátiles que existen. Con esta función, puedes calcular la suma de los valores de una columna o de una expresión, ya sea de toda la tabla o de grupos específicos. Además, puedes usar la opción DISTINCT para sumar solo los valores distintos, evitando las repeticiones.
En este artículo, te explicaremos cómo usar la función SUM en MySQL con ejemplos prácticos y sencillos. También te mostraremos cómo combinar la función SUM con otras cláusulas como WHERE, GROUP BY, HAVING y ORDER BY, para obtener resultados más precisos y ordenados. Al final del artículo, sabrás cómo usar la función SUM en MySQL como un experto.
Índice
- Sintaxis y funcionamiento de la función SUM en MySQL
- Ejemplos de uso de la función SUM en MySQL
- Ejemplo 1: usar la función SUM para obtener el total de ventas
- Ejemplo 2: usar la función SUM con DISTINCT para obtener el total de precios distintos
- Ejemplo 3: usar la función SUM con WHERE para obtener el total de ventas de un producto específico
- Ejemplo 4: usar la función SUM con GROUP BY para obtener el total de ventas por producto
- Ejemplo 5: usar la función SUM con HAVING para obtener el total de ventas por producto que superan un valor
- Ejemplo 6: usar la función SUM con ORDER BY para obtener el total de ventas por producto ordenado por precio
Sintaxis y funcionamiento de la función SUM en MySQL
La sintaxis básica de la función SUM en MySQL es la siguiente:
SUM([DISTINCT] expresion)
Los elementos que componen esta sintaxis son:
SUM
es el nombre de la función.DISTINCT
es una opción que indica que solo se deben sumar los valores distintos de la expresión. Si no se usa esta opción, se suman todos los valores, incluyendo los repetidos.expresion
es la columna o la fórmula cuyos valores se quieren sumar. Puede ser cualquier expresión válida que devuelva un valor numérico.
La función SUM funciona de la siguiente manera:
Si se usa en una consulta sin la cláusula GROUP BY, devuelve la suma de todos los valores de la expresión de toda la tabla.
Si se usa en una consulta con la cláusula GROUP BY, devuelve la suma de los valores de la expresión de cada grupo.
Si se usa en una consulta con la cláusula WHERE, solo suma los valores de la expresión que cumplen con la condición especificada.
Si se usa en una consulta con la cláusula HAVING, solo suma los valores de la expresión que cumplen con el criterio de agregación indicado.
Si se usa en una consulta con la cláusula ORDER BY, ordena los resultados según el valor de la suma o según otra columna o expresión.
Si se usa en una consulta que no devuelve ninguna fila, devuelve NULL, no cero.
Si se usa en una consulta que contiene valores NULL, los ignora y solo suma los valores no nulos.
Ejemplos de uso de la función SUM en MySQL
Para ilustrar el uso de la función SUM en MySQL, vamos a usar una base de datos de ejemplo llamada tienda
, que contiene dos tablas: productos
y ventas
. La tabla productos
tiene los siguientes campos:
id_producto
: el identificador único del producto.nombre
: el nombre del producto.precio
: el precio del producto en euros.stock
: el número de unidades disponibles del producto.
La tabla ventas
tiene los siguientes campos:
id_venta
: el identificador único de la venta.id_producto
: el identificador del producto vendido.cantidad
: el número de unidades vendidas del producto.fecha
: la fecha de la venta.
Las tablas tienen la siguiente relación:
Ejemplo 1: usar la función SUM para obtener el total de ventas
Supongamos que queremos obtener el total de ventas (en euros) de todos los productos. Para ello, podemos usar la función SUM junto con una unión entre las tablas productos
y ventas
, multiplicando el precio por la cantidad vendida. La consulta sería así:
SELECT SUM(p.precio * v.cantidad) AS total_ventas
FROM productos p
INNER JOIN ventas v ON p.id_producto = v.id_producto;
El resultado sería el siguiente:
total_ventas |
---|
13650.00 |
Ejemplo 2: usar la función SUM con DISTINCT para obtener el total de precios distintos
Supongamos que queremos obtener el total de los precios distintos de todos los productos. Para ello, podemos usar la función SUM con la opción DISTINCT y aplicarla a la columna precio de la tabla productos. La consulta sería así:
SELECT SUM(DISTINCT precio) AS total_precios
FROM productos;
El resultado sería el siguiente:
total_precios |
---|
139.80 |
Ejemplo 3: usar la función SUM con WHERE para obtener el total de ventas de un producto específico
Supongamos que queremos obtener el total de ventas (en euros) del producto con el id 3. Para ello, podemos usar la función SUM junto con una unión entre las tablas productos
y ventas
, multiplicando el precio por la cantidad vendida, y aplicar una condición en la cláusula WHERE para filtrar solo el producto deseado. La consulta sería así:
SELECT SUM(p.precio * v.cantidad) AS total_ventas
FROM productos p
INNER JOIN ventas v ON p.id_producto = v.id_producto
WHERE p.id_producto = 3;
El resultado sería el siguiente:
total_ventas |
---|
2700.00 |
Ejemplo 4: usar la función SUM con GROUP BY para obtener el total de ventas por producto
Supongamos que queremos obtener el total de ventas (en euros) de cada producto. Para ello, podemos usar la función SUM junto con una unión entre las tablas productos
y ventas
, multiplicando el precio por la cantidad vendida, y agrupar los resultados por el id y el nombre del producto, usando la cláusula GROUP BY. La consulta sería así:
SELECT p.id_producto, p.nombre, SUM(p.precio * v.cantidad) AS total_ventas
FROM productos p
INNER JOIN ventas v ON p.id_producto = v.id_producto
GROUP BY p.id_producto, p.nombre;
El resultado sería el siguiente:
id_producto | nombre | total_ventas |
---|---|---|
1 | Camiseta | 1800.00 |
2 | Pantalón | 3150.00 |
3 | Chaqueta | 2700.00 |
4 | Zapatillas | 3600.00 |
5 | Gorra | 2400.00 |
Ejemplo 5: usar la función SUM con HAVING para obtener el total de ventas por producto que superan un valor
Supongamos que queremos obtener el total de ventas (en euros) de cada producto que superan los 3000 euros. Para ello, podemos usar la función SUM junto con una unión entre las tablas productos
y ventas
, multiplicando el precio por la cantidad vendida, y agrupar los resultados por el id y el nombre del producto, usando la cláusula GROUP BY. Luego, podemos aplicar un criterio de agregación en la cláusula HAVING para filtrar solo los productos cuyo total de ventas sea mayor que 3000 euros. La consulta sería así:
SELECT p.id_producto, p.nombre, SUM(p.precio * v.cantidad) AS total_ventas
FROM productos p
INNER JOIN ventas v ON p.id_producto = v.id_producto
GROUP BY p.id_producto, p.nombre
HAVING SUM(p.precio * v.cantidad) > 3000;
El resultado sería el siguiente:
id_producto | nombre | total_ventas |
---|---|---|
2 | Pantalón | 3150.00 |
4 | Zapatillas | 3600.00 |
Ejemplo 6: usar la función SUM con ORDER BY para obtener el total de ventas por producto ordenado por precio
Supongamos que queremos obtener el total de ventas (en euros) de cada producto ordenado por su precio de menor a mayor. Para ello, podemos usar la función SUM junto con una unión entre las tablas productos
y ventas
, multiplicando el precio por la cantidad vendida, y agrupar los resultados por el id y el nombre del producto, usando la cláusula GROUP BY. Luego, podemos ordenar los resultados por el precio del producto, usando la cláusula ORDER BY. La consulta sería así:
SELECT p.id_producto, p.nombre, p.precio, SUM(p.precio * v.cantidad) AS total_ventas
FROM productos p
INNER JOIN ventas v ON p.id_producto = v.id_producto
GROUP BY p.id_producto, p.nombre, p.precio
ORDER BY p.precio;
El resultado sería el siguiente:
id_producto | nombre | precio | total_ventas |
---|---|---|---|
5 | Gorra | 12 | 2400.00 |
1 | Camiseta | 15 | 1800.00 |
2 | Pantalón | 35 | 3150.00 |
4 | Zapatillas | 60 | 3600.00 |
3 | Chaqueta | 90 | 2700.00 |
En este artículo, hemos aprendido cómo usar la función SUM en MySQL, con ejemplos prácticos y sencillos. Hemos visto cómo calcular la suma de los valores de una columna o de una expresión, usando la opción DISTINCT para evitar las repeticiones. También hemos visto cómo combinar la función SUM con otras cláusulas como WHERE, GROUP BY, HAVING y ORDER BY, para obtener resultados más precisos y ordenados.
La función SUM es una herramienta muy útil para obtener información agregada y estadística de los datos de una o más tablas, como el total de ventas, el total de precios, el total de ventas por producto, etc.
Esperamos que este artículo te haya sido de ayuda y que te animes a usar la función SUM en MySQL para mejorar tus proyectos de bases de datos. Si tienes alguna duda o sugerencia, no dudes en dejarnos un comentario. ¡Hasta la próxima! 👋
Articulos relacionados:
Este artículo forma parte del tutorial de MySQL.