Resumo: neste tutorial, irá aprender a usar a função SQL SUM para calcular a soma de todos os valores ou valores distintos.
Introdução à função SQL SUM
a função SUM
devolve a soma dos 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.,
pode indicar tanto o ALL
como o DISTINCT
modificador na função SUM()
.
DISTINCT
modificador instrui oSUM()
função para calcular o total de valores distintos, o que significa que os dados duplicados são eliminados.- a
ALL
modificador permite que aSUM()
função devolva a soma de todos os valores, incluindo duplicados., A funçãoSUM()
usa a funçãoALL
modificador por omissão, se não indicar explicitamente qualquer modificador.
SQL sum function examples
we will use the products
table for our examples in the following sections.,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, a função SUM() calcula a soma das unidades em estoque.,div>
Se você usar um alias de coluna para a expressão que contém o SUM()
função, você pode consultar o alias HAVING
cláusula em vez da expressão., Isto ajuda-o a poupar tempo a escrever a mesma expressão duas vezes. Além disso, quando você muda a expressão, você tem que mudá-la em apenas um lugar.
a seguinte consulta produz o mesmo resultado que a consulta acima.,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.,códigodocliente,
companyname,
(SOMA(preçounitário * quantidade) – SOMA(preçounitário * quantidade) * desconto) total
DE
orderdetails
INNER JOIN
ordens SOBRE ordens.orderid = orderdetails.orderid
INNER JOIN
clientes em clientes.customerid = orders.customerid
grupo por clientes.códigodocliente
ORDEM total DESC
LIMITE de 5
|
Podemos usar a cláusula LIMIT para obter apenas 5 linhas do conjunto de resultados., Ambos MySQL e PostgreSQL suportam a cláusula LIMIT
. No Microsoft SQL Server, você pode usar o SELECT TOP
, conforme mostrado na seguinte consulta para obter o mesmo resultado:
1
2
3
4
5
6
7
8
9
10
11
12
|
SELECT TOP 5
os clientes.,códigodocliente,
companyname,
(SOMA(preçounitário * quantidade) – SOMA(preçounitário * quantidade) * desconto) total
DE
orderdetails
INNER JOIN
ordens SOBRE ordens.orderid = orderdetails.orderid
INNER JOIN
clientes em clientes.customerid = orders.customerid
grupo por clientes.,códigodocliente
ORDEM total DESC;
|
a consulta A seguir usa o SUM()
função para obter os 5 produtos mais vendidos:
1
2
3
4
5
6
7
8
9
10
11
|
SELECIONE
p.productid,
p.,productname,
(SOMA(o.preçounitário * quantidade) – SOMA(o.preçounitário * quantidade) * desconto) total
DE
orderdetails s
INNER JOIN
produtos de p EM p.productid = s.productid
GRUPO POR p.productid
ORDEM total DESC
LIMITE de 5;
|
neste tutorial, temos mostrado a você como usar o SQL SUM
função para calcular a soma dos valores.
- este tutorial foi útil ?,
- YesNo