Resumen: En este tutorial, aprenderá a usar la función SQL SUM para calcular la suma de todos los valores o valores distintos.
Introducción a la función de suma SQL
la función SUM
devuelve la suma de números., The syntax of the SUM()
function is as follows:
1
|
SUM( DISTINCT | ALL numeric_expression)
|
Unlike other SQL aggregate functions, the SUM()
function accepts only the expression that evaluates to numerical values.,
Se puede especificar ALL
o DISTINCT
modificador en el SUM()
función.
- El modificador
DISTINCT
instruye a la funciónSUM()
para calcular el total de valores distintos, lo que significa que se eliminan los duplicados. - El modificador
ALL
permite que la funciónSUM()
devuelva la suma de todos los valores, incluidos los duplicados., La funciónSUM()
utiliza el modificadorALL
por defecto si no especifica ningún modificador explícitamente.
SQL sum function examples
usaremos la tabla products
para nuestros ejemplos en las siguientes secciones.,in conjunction with a GROUP BY clause as the following query:
1
2
3
4
5
|
SELECT
supplierid, SUM(unitsinstock)
FROM
products
GROUP BY supplierid;
|
The GROUP BY
clause groups the products by suppliers., Para cada grupo, la función SUM() calcula la suma de unidades en stock.,div>
Si utiliza un alias de columna para la expresión que contiene la etiqueta SUM()
función, puede consultar el alias en el HAVING
cláusula en lugar de la expresión., Esto le ayuda a ahorrar tiempo escribiendo la misma expresión dos veces. Además, cuando cambia la expresión, tiene que cambiarla en un solo lugar.
la siguiente consulta produce el mismo resultado que la consulta anterior.,v>
Advanced SQL SUM function examples
You can use the SUM function to answer more challenging business questions such as get top 5 customers by sales as the following query:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
SELECT
customers.,customerid,
companyname,
(SUM(unitprice * quantity) – SUM (unitprice * quantity) * discount) AS total
FROM
orderdetails
INNER JOIN
orders ON orders.orderid = orderdetails.orderid
INNER JOIN
clientes en clientes.customerid = pedidos.customerid
grupo por clientes.customerid
ORDEN total DESC
LÍMITE de 5
|
utilizamos la cláusula LIMIT para obtener sólo 5 filas del conjunto de resultados., Tanto MySQL como PostgreSQL admiten la cláusula LIMIT
. En Microsoft SQL Server, puede utilizar la etiqueta SELECT TOP
como se muestra en la siguiente consulta para lograr el mismo resultado:
1
2
3
4
5
6
7
8
9
10
11
12
|
SELECT TOP 5
los clientes.,customerid,
companyname,
(SUM(unitprice * quantity) – SUM (unitprice * quantity) * discount) AS total
FROM
orderdetails
INNER JOIN
orders ON orders.orderid = orderdetails.orderid
INNER JOIN
clientes en clientes.customerid = pedidos.customerid
grupo por clientes.,customerid
ORDEN total DESC;
|
La siguiente consulta se utiliza la etiqueta SUM()
función para obtener los 5 productos más vendidos:
1
2
3
4
5
6
7
8
9
10
11
|
SELECCIONAR
p.productid,
p.,productname,
(SUMA(o.preciounidad * cantidad) – SUMA(o.preciounidad * cantidad) * descuento) total
DE
orderdetails o
INNER JOIN
los productos de p EN p.productid = o.productid
GRUPO p.productid
ORDEN total DESC
LÍMITE de 5;
|
En este tutorial, hemos demostrado cómo utilizar el SQL SUM
función para calcular la suma de los valores.
- ¿Fue útil este tutorial ?,
- YesNo