mssql sqlserver avg聚合函数使用说明


摘要:
下文主要讲述sqlserver中聚合函数avg的用法



avg 功能及语法说明

avg 功能:
返回一组数据的平均值,如果数据存在null,则会忽略此行
avg 语法说明:
AVG ([ALL|DISTINCT] expression )
OVER ([partition_by_clause ] order_by_clause )
———————————————————
参数说明:
all: 表达式中所有记录行参入聚合,缺省值
DISTINCT:avg 只对表达式中唯一值进行聚合
expression
可以转换为数值或数值类型的表达式(bit除外)
partition_by_clause:
集合分组函数
order_by_clause:
排序字段
———————————————–
返回值说明:
表达式为:tinyint 返回:int
表达式为:int 返回:int
表达式为:decimal 返回:decimal
表达式为:numeric 返回:numeric
表达式为:money 和 smallmoney 返回:money
表达式为:float 和 real 返回:float
———————————————–

注意事项:
1.avg中待计算的数据类型的总和超过数据类型的最大值,则会返回相应的错误信息。
2.avg会忽略null行



avg举例说明

 create table test(info varchar(80),qty decimal(18,2))
go

insert into test(info,qty)values('maomao365.com',12)
insert into test(info,qty)values('猫猫小屋',8)
insert into test(info,qty)values('a',8)
insert into test(info,qty)values('a',6)
insert into test(info,qty)values('c',null)
go

select avg(qty) from test  
select avg(qty) from test where qty is not null
---从以上两个结果相同,我们可以看出qty 等于null,则被提出avg计算 

select avg(all qty) from test 
select avg(distinct qty) from test 
---从以上两个结果,可以看出all 是默认值 distinct 关键会根据qty不同的值,进行计算

select info,avg(qty) over(partition by info ) as qty from test 
---分组后,对每个分组中的集合进行avg计算

go
truncate table test
drop table test 
mssql_sqlserver_avg_聚合函数用法简介

mssql_sqlserver_avg_聚合函数用法简介