SUM (Transact-SQL)
SQL Server 2005
傳回運算式中所有值的總和,或只傳回 DISTINCT 值的總和。SUM 只能搭配數值資料行來使用。系統會忽略 Null 值。後面可能接著 OVER 子句。
- ALL
-
將彙總函數套用至所有值。ALL 是預設值。
- DISTINCT
-
指定 SUM 傳回唯一值的總和。
- expression
-
這是一個常數、資料行或函數,或算術、位元和字串運算子的任何組合。expression 是精確數值或近似數值資料類型類別目錄的運算式,但 bit 資料類型除外。不允許彙總函數和子查詢。如需詳細資訊,請參閱<運算式 (Transact-SQL)>。
以最精確的 expression 資料類型來傳回所有 expression 值的總和。
| 運算式結果 | 傳回類型 |
|---|---|
|
整數類別目錄 |
int |
|
decimal 類別目錄 (p, s) |
decimal(38, s) |
|
money 和 smallmoney 類別目錄 |
money |
|
float 和 real 類別目錄 |
float |
重要事項: |
|---|
| 當使用 CUBE 或 ROLLUP 時,不支援個別彙總,如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用的話,SQL Server 2005 Database Engine 會傳回錯誤訊息,且會取消查詢。 |
A. 在彙總和資料列彙總上使用 SUM
下列範例會顯示彙總函數和資料列彙總函數之間的差異。第一個範例顯示只提供摘要資料的彙總函數,第二個範例顯示同時提供詳細資料和摘要資料的資料列彙總函數。
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
以下為結果集:
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
以下為結果集:
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. 計算多個資料行的群組總計
下列範例會針對 Product 資料表中所列出的每個顏色,來計算 ListPrice 和 StandardCost 的總和。
USE AdventureWorks; 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 row(s) affected)
社群新增項目
新增
顯示:

