MSSQL 函数-系统函数-聚合函数简介(一)


一、 系统函数-聚合函数简介及举例说明

当前实验环境:
mssql 2008

聚合函数功能:
对一系列列进行操作,返回相对应的结果

1.1 Avg 函数
  功能:返回一系列列值的平均数,如果列值为”NULL”,则忽略此行数据
参数: 数值型的列
返回值:返回一个int类型的数,如果平均数不等于int类型,mssql会将数值舍去小数部分转换为int型
举例:

      /* 建表A*/
create table A(keyId int ,info varchar(60) not null , writeDate datetime)  
go 

insert into A(keyId,info,writeDate)values(1,'maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(3,'www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(8,'http://www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(null,'http://www.maomao365.com',GETDATE())    ---计算平均值时,将不会将此行做为基数
go

/*求列平均值*/
select AVG(keyId) from A 
go
 
 truncate table A ---清除表空数据 
 drop     table A  ----删除表
    


1.2 Binary_checkSum 函数
  功能:将一行数据进行二进制计算,或将指定的一列或多列进行二进制求和计算,
此功能常应用于检测数据行是否发生变化(类似网络上文件MD5校验)
当数值发生变化后,此函数的返回值就会发生变化
参数: *,或 列名  或 数值  或 多个列名
返回值:返回一个numeric类型的数
举例:

/* 建表A*/
create table A(keyId int ,info varchar(60) not null , writeDate datetime)  
go 

insert into A(keyId,info,writeDate)values(1,'maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(3,'www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(8,'http://www.maomao365.com',GETDATE())
go
/*对列值进行二进制求和计算*/
select keyId,BINARY_CHECKSUM(*),BINARY_CHECKSUM(info),BINARY_CHECKSUM(keyId),BINARY_CHECKSUM(keyID,info) from A 
go
/*对固定的数值进行二进制求和计算*/
select BINARY_CHECKSUM(100),BINARY_CHECKSUM('maomao365.com')
go

update A set info='列值变化' where keyId=1
go
/*列值变化,二进制求和值发生变化*/
select keyId,BINARY_CHECKSUM(*),BINARY_CHECKSUM(info),BINARY_CHECKSUM(keyId),BINARY_CHECKSUM(keyID,info) from A 
go
 truncate table A ---清除表空数据 
 drop     table A  ----删除表
   


1.3 checkSum 函数
  功能: 将一行数据校验求和进行计算,或将指定的一列或多列进行校验求和计算
参数: *,或 列名  或 数值  或 多个列名,传入的列名不能存在非计算类型(ntext、text、XML、image、cursor)
返回值:返回int类型
举例:

    /* 建表A*/
create table A(keyId int ,info varchar(60) not null , writeDate datetime)  
go 
insert into A(keyId,info,writeDate)values(1,'maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(3,'www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(8,'http://www.maomao365.com',GETDATE())
go
/*对列值进行二进制求和计算*/
select keyId,CHECKSUM(*),CHECKSUM(info),CHECKSUM(keyId),CHECKSUM(keyID,info) from A 
go
 truncate table A ---清除表空数据 
 drop     table A  ----删除表
    


1.4 checkSum_agg 函数
  功能: 返回一列或多列数据校验之和
参数: *,或 列名  或 数值  或 多个列名,传入的列名不能存在非int类型
返回值:返回int类型
举例:

    /* 建表A*/
create table A(keyId int ,info varchar(60) not null , writeDate datetime)  
go 
insert into A(keyId,info,writeDate)values(1,'maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(3,'www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(18,'http://www.maomao365.com',GETDATE())
go
/*对列值进行二进制求和计算*/
select  CHECKSUM_AGG(keyId)  from A 
go
 truncate table A ---清除表空数据 
 drop     table A  ----删除表
    

1.5 count及count_big 函数
  功能: 统计数据表中的函数,如果统计列中存在null,则此列不加入计数信息
参数: *,或 列名  或 数值 
返回值: count返回int类型 count_big 返回bigInt类型
举例:

/* 建表A*/
create table A(keyId int ,info varchar(60) not null , writeDate datetime)  
go 
insert into A(keyId,info,writeDate)values(1,'maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(3,'www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(18,'http://www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(null,'http://www.maomao365.com',GETDATE())
go
insert into A(keyId,info,writeDate)values(18,'http://www.maomao365.com',GETDATE())
go
/*对列值进行行数计算*/
select COUNT(*),COUNT(1),COUNT(0),COUNT(keyId),COUNT(distinct keyId)  from A 
/*
结果分析:
count(keyId)统计行数信息,剔除null 所以显示4行
count(distinct keyId)统计唯一值信息 剔除null 显示唯一值 所以显示三3行 
*/ 

 truncate table A ---清除表空数据 
 drop     table A  ----删除表
 
 

相关阅读:
mssql 新建标识列的方法
mssql truncate table 关键字 简介
mssql drop关键字 简介
mssql 列默认值 简介
MSSQL 列约束(check) 简介
MSSQL 外键 简介
MSSQL 主键 简介
sql alter table 关键字简介
sql index 关键字简介
sql create view 关键字简介
sql create table 关键字简介
mssql create database关键字简介
sql select into关键字简介
sql union union all
sql full join关键字简介
sql right join关键字简介
sql left join关键字简介
sql inner join关键字简介
sql join(连接)关键字简介
sql as 关键字简介
sql between 关键字简介
sql in 关键字简介
sql like 关键字简介及应用
sql top 关键字简介
sql delete 关键字简介
sql update 关键字简介
sql insert into 关键字简介及用法
sql order by 关键字用法
sql and or 关键字简介
sql where 关键字简介
sql select distinct top 关键字简介
sql select
sql简介
sql 删除重复数据
如果查询MSSQL中重复列(group by having count)