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


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

grouping_id 函数
   功能:当结果集中的行是由 rollup cube 关键字 进行汇总聚合而成时,
我们采用grouping_id(group by 后面的列名) 则返回大于0的数 ,否则返回0

采用此函数,我们可以区分哪些行是由以上两个关键字和相关列生成的
grouping_id([列名1],[列名2],[列名3]) = grouping([列名1])+grouping([列名2])+grouping([列名3]) 将grouping结果以二进制的形式组合起来,然后再转换为十进制数据
参数: group by 后的 所有列名
返回值:返回int类型数值
举例:

      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(8,'http://www.maomao365.com',GETDATE())
go
/*所有列都非 rollup cube生成 所有 groupIng返回0*/
select keyId,info,COUNT(info),SUM(keyId),GROUPING(keyId),groupIng_id(keyId,info) from A 
group by keyId,info
 
select keyId,COUNT(info),SUM(keyId),GROUPING(keyId) as t,GROUPING(info) as t2,groupIng_id(keyId) as t3,groupIng_id(keyId,info) as t4 from A 
group by keyId,info
WITH Rollup 
go

truncate table A
drop     table A

     


相关阅读:
MSSQL 函数-系统函数-聚合函数grouping简介(二)
mssql rollup cube 关键字的用法
如果查询MSSQL中重复列(group by having count)