· 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.

¡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.

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_productonombretotal_ventas
1Camiseta1800.00
2Pantalón3150.00
3Chaqueta2700.00
4Zapatillas3600.00
5Gorra2400.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_productonombretotal_ventas
2Pantalón3150.00
4Zapatillas3600.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_productonombrepreciototal_ventas
5Gorra122400.00
1Camiseta151800.00
2Pantalón353150.00
4Zapatillas603600.00
3Chaqueta902700.00

Conclusión

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! 👋

Artículos relacionados con MySQL:

    Compartir
    Volver al blog

    Artículos relacionados

    Ver todos los artículos »
    PHP strpos

    PHP strpos

    La función "strpos" es una de las más utilizadas en PHP y es muy útil para buscar la posición de una subcadena dentro de una cadena de texto..