SUM (Transact-SQL)

傳回運算式中所有值的總和,或只傳回 DISTINCT 值的總和。SUM 只能搭配數值資料行來使用。系統會忽略 Null 值。後面可能接著 OVER 子句 (Transact-SQL)

主題連結圖示Transact-SQL 語法慣例

語法

SUM ( [ ALL | DISTINCT ] expression )

引數

  • ALL
    將彙總函式套用至所有值。ALL 是預設值。

  • DISTINCT
    指定 SUM 傳回唯一值的總和。

  • expression
    這是一個常數、資料行或函數,或算術、位元和字串運算子的任何組合。expression 是精確數值或近似數值資料類型類別目錄的運算式,但 bit 資料類型除外。不允許彙總函式和子查詢。如需詳細資訊,請參閱<運算式 (Transact-SQL)>。

傳回類型

以最精確的 expression 資料類型來傳回所有 expression 值的總和。

運算式結果

傳回類型

tinyint

int

smallint

int

int

int

bigint

bigint

decimal 類別目錄 (p, s)

decimal(38, s)

money 和 smallmoney 類別目錄

money

float 和 real 類別目錄

float

範例

A. 在彙總和資料列彙總上使用 SUM

下列範例會顯示彙總函式和資料列彙總函式之間的差異。第一個範例顯示只提供摘要資料的彙總函式,第二個範例顯示同時提供詳細資料和摘要資料的資料列彙總函式。

USE AdventureWorks2008R2;
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

以下為結果集:

Color

--------------- --------------------- ---------------------

Black 27404.84 15214.9616

Silver 26462.84 14665.6792

White 19.00 6.7926

(3 個資料列受到影響)

USE AdventureWorks2008R2;
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

以下為結果集:

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 個資料列受到影響)

B. 計算多個資料行的群組總計

下列範例會針對 Product 資料表中所列出的每個顏色來計算 ListPrice 和 StandardCost 的總和。

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

以下為結果集:

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 個資料列受到影響)

請參閱

參考