Udostępnij za pośrednictwem


SUM (Transact-SQL)

Zwraca sumę wszystkich wartości, lub tylko wartości określonych klauzulą DISTINCT, będących wynikiem wykonania wyrażenia.Instrukcji SUM można używać wyłącznie z kolumnami liczbowymi.Wartości null są ignorowane.Po instrukcji może występować W klauzula (języka Transact-SQL).

Topic link iconKonwencje składni języka Transact-SQL

SUM ( [ ALL | DISTINCT ] expression )

Argumenty

  • ALL
    Dotyczy wszystkich wartości funkcja agregacja.WSZYSTKO jest domyślnym.

  • DISTINCT
    L.

  • expression
    Is a constant, column, or function, and any combination of arithmetic, bitwise, and string operators.expression is an expression of the exact numeric or approximate numeric data type category, except for the bit data type.Funkcje agregacja i podkwerend nie są dozwolone.Aby uzyskać więcej informacji zobaczExpressions (Transact-SQL).

Zwracane typy

Zwraca sumę wszystkich wartości będących wynikiem wykonania wyrażenia określonego parametrem expression przy użyciu typu danych zapewniającego największą dokładność tego wyrażenia.

Wynik wyrażenie

Zwracany typ

tinyint

int

smallint

int

int

int

bigint

bigint

decimal Kategoria (p, s)

decimal(38, s)

money i smallmoney Kategoria

money

float i real Kategoria

float

Przykłady

A.It produces groups and summary values but does so after eliminating the products with prices over $25 and average order quantities under 5.

W przykładach poniżej pokazano różnice między funkcjami agregującymi a funkcjami agregującymi wiersze.Pierwszy przykład ilustruje funkcje agregujące, które zwracają tylko dane zbiorcze, natomiast drugi przykład pokazuje funkcje agregujące wiersze, które zwracają zarówno dane szczegółowe, jak i zbiorcze.

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

Here is the result set.

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

Here is the result set.

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.Obliczanie sum dla grup obejmujących więcej niż jedną kolumnę

W poniższym przykładzie oblicza sumę ListPrice i StandardCost dla każdego koloru w Product Tabela.

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

Here is the result set.

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)