sql >> Base de Datos >  >> RDS >> Mysql

Función SUMA() en MySQL

En MySQL, el SUM() función agregada devuelve la suma de una expresión dada.

También se puede usar para devolver la suma de todos los valores distintos (únicos) en una expresión.

Sintaxis

La sintaxis es así:

SUM([DISTINCT] expr) [over_clause]

Datos de muestra

Supongamos que tenemos una tabla llamada Products con los siguientes datos:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Resultado:

+----------+---------------------------------+--------------+
| VendorId | ProductName                     | ProductPrice |
+----------+---------------------------------+--------------+
|     1001 | Left handed screwdriver         |        25.99 |
|     1001 | Right handed screwdriver        |        25.99 |
|     1001 | Long Weight (blue)              |        14.75 |
|     1001 | Long Weight (green)             |        11.99 |
|     1002 | Sledge Hammer                   |         NULL |
|     1003 | Chainsaw                        |       245.00 |
|     1003 | Straw Dog Box                   |        55.99 |
|     1004 | Bottomless Coffee Mugs (4 Pack) |         9.99 |
+----------+---------------------------------+--------------+

Ejemplo

Podemos usar la siguiente consulta para obtener la suma de todos los precios.

SELECT SUM(ProductPrice)
FROM Products;

Resultado:

389.70

Aquí, la información de precios se almacena en el ProductPrice columna, y así lo pasamos como argumento a SUM() función, que luego calcula la suma y devuelve el resultado.

Valores nulos

El SUM() La función ignora cualquier valor NULL. En nuestra tabla de muestra anterior, el mazo tiene un valor NULO en su ProductPrice columna, pero eso fue ignorado en el cálculo.

Resultados filtrados

El SUM() opera en las filas devueltas por la consulta. Entonces, si filtra los resultados, la salida de SUM() reflejará eso.

SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Resultado:

78.72

En este caso, 78,72 es la suma de todos los productos ofrecidos por el proveedor especificado.

El DISTINCT Palabra clave

Puedes usar el DISTINCT palabra clave con SUM() para calcular sólo valores distintos. Es decir, si hay valores duplicados, se tratan como un solo valor.

Ejemplo:

SELECT SUM(DISTINCT ProductPrice)
FROM Products;

Resultado:

363.71

Nuestra tabla contiene dos artículos con el mismo precio (el destornillador para zurdos y el destornillador para diestros tienen un precio de 25,99). El DISTINCT La palabra clave da como resultado que ambos valores se traten como uno solo.

Funciones de ventana

Podemos usar un OVER cláusula con SUM() función para crear una función de ventana. Ver SQL SUM() para principiantes para ver un ejemplo.