Share via


SUM (Transact-SQL)

Retorna a soma de todos os valores ou somente os valores DISTINCT na expressão. SUM pode ser usado exclusivamente com colunas numéricas. Valores nulos são ignorados. Pode ser seguido pela Cláusula OVER (Transact-SQL).

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

SUM ( [ ALL | DISTINCT ] expression )

Argumentos

  • ALL
    Aplica a função de agregação a todos os valores. ALL é o padrão.

  • DISTINCT
    Especifica que SUM retorna a soma de valores exclusivos.

  • expression
    É uma constante, coluna ou função e qualquer combinação de operadores aritméticos, bit a bit e de cadeia. expression é uma expressão da categoria de tipo de dados numérico exato ou aproximado, exceto para o tipo de dados bit. Funções de agregação e subconsultas não são permitidas. Para obter mais informações, consulte Expressões (Transact-SQL).

Tipos de retorno

Retorna a adição de todos os valores de expression no tipo de dados mais preciso de expression.

Resultado da expressão

Tipo de retorno

tinyint

int

smallint

int

int

int

bigint

bigint

Categoria decimal (p, s)

decimal(38, s)

Categoria money e smallmoney

money

Categoria float e real

float

Exemplos

A. Usando SUM para agregações e agregações de linha

Os exemplos a seguir mostram as diferenças entre funções de agregação e funções de agregação de linha. O primeiro mostra funções de agregação fornecendo somente os dados resumidos e o segundo mostra funções de agregação de linha fornecendo dados detalhados e resumidos.

USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
WHERE Color IS NOT NULL 
    AND ListPrice != 0.00 
    AND Name LIKE 'Mountain%'
GROUP BY Color
ORDER BY Color;
GO

Conjunto de resultados.

Color                                 
--------------- --------------------- ---------------------
Black           27404.84              15214.9616
Silver          26462.84              14665.6792
White           19.00                 6.7926

(3 row(s) affected)

USE AdventureWorks;
GO
SELECT Color, ListPrice, StandardCost
FROM Production.Product
WHERE Color IS NOT NULL 
    AND ListPrice != 0.00 
    AND Name LIKE 'Mountain%'
ORDER BY Color
COMPUTE SUM(ListPrice), SUM(StandardCost) BY Color;
GO

Conjunto de resultados.

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
Black           2294.99               1251.9813
Black           2294.99               1251.9813
Black           2294.99               1251.9813
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           1079.99               598.4354
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           3374.99               1898.0944
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797
Black           539.99                294.5797

sum                   sum
--------------------- ---------------------
27404.84              15214.9616

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
Silver          2319.99               1265.6195
Silver          2319.99               1265.6195
Silver          2319.99               1265.6195
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          3399.99               1912.1544
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          769.49                419.7784
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179
Silver          564.99                308.2179

sum                   sum
--------------------- ---------------------
26462.84              14665.6792

Color           ListPrice             StandardCost
--------------- --------------------- ---------------------
White           9.50                  3.3963
White           9.50                  3.3963

sum                   sum
--------------------- ---------------------
19.00                 6.7926

(37 row(s) affected)

B. Calculando totais de grupos com mais de uma coluna

O exemplo a seguir calcula a soma do ListPrice e do StandardCost para cada cor listada na tabela Product.

USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
GROUP BY Color
ORDER BY Color;
GO

Conjunto de resultados.

Color                                 
--------------- --------------------- ---------------------
NULL            4182.32               2238.4755
Black           67436.26              38636.5002
Blue            24015.66              14746.1464
Grey            125.00                51.5625
Multi           478.92                272.2542
Red             53274.10              32610.7661
Silver          36563.13              20060.0483
Silver/Black    448.13                198.97
White           36.98                 13.5172
Yellow          34527.29              21507.6521

(10 row(s) affected)

Consulte também

Referência