- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
sql2005 SUM函数使用方法
返回表达式中所有值的和或仅非重复值的和。SUM 只能用于数字列。空值将被忽略。后面可能跟随 OVER 子句。
主题链接图标 Transact-SQL 语法约定
语法
SUM ( [ ALL | DISTINCT ] expression )
参数
ALL
对所有的值应用此聚合函数。ALL 是默认值。
DISTINCT
定 SUM 返回唯一值的和。
expression
常量、列或函数与算术、位和字符串运算符的任意组合。expression 是精确数字或近似数字数据类型类别(bit 数据类型除外)的表达式。不允许使用聚合函数和子查询。有关详细信息,请参阅表达式(Transact-SQL)。
返回类型
以最精确的 expression 数据类型返回所有 expression 值的和。
表达式结果 返回类型
整数类别
int
decimal 类别 (p, s)
decimal(38, s)
money 和 smallmoney 类别
money
float 和 real 类别
float
ms187810.note(zh-cn,SQL.90).gif重要提示:
当使用 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 数据库引擎将返回错误消息并取消查询。
示例
A. 在聚合和行聚合中使用 SUM
以下示例显示了聚合函数与行聚合函数之间的区别。第一个示例显示了只提供汇总数据的聚合函数,第二个示例显示了提供详尽数据和汇总数据的行聚合函数。
[code=sql]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[/code]
下面是结果集:
Color
--------------- --------------------- ---------------------
Black 27404.84 15214.9616
Silver 26462.84 14665.6792
White 19.00 6.7926
(3 row(s) affected)
[code=sql]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[/code]
下面是结果集:
- 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 的和。
[code=sql]USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
GROUP BY Color
ORDER BY Color
GO[/code]
下面是结果集:
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)
复制代码 |
|