mssql sqlserver cume_dist函数使用简介


摘要:
下文讲述sqlserver分析函数cume_dist的用法
实验环境:sqlserver 2012



cume_dist功能简介:

返回指定列的值,在当前群组集合中的分布位置,离基准值越远分布值越小,越接近0说明离基准值越远,
此值最大为1 最小为null
——————–

cume_dist语法简介:

cume_dist()
over(partition by [列名] order by [列名] )
partition by [列名]:
根据此列名将集合划分为不同的群组
order by [列名]:
根据此[列名]计算群组中数据的分布情况
函数返回值:
返回大于0 并且小于等于1的浮点型数值

cume_dist举例说明:

   declare @test table(keyId int,info varchar(20),qty int)
insert into @test (keyId,info,qty)values(-1,'a',2)
insert into @test (keyId,info,qty)values(1,'a',2)
insert into @test (keyId,info,qty)values(2,'a',10)
insert into @test (keyId,info,qty)values(3,'b',8)
insert into @test (keyId,info,qty)values(4,'c',8)
insert into @test (keyId,info,qty)values(5,'d',8)
insert into @test (keyId,info,qty)values(6,'b',9) 

/*
从下文的输出我们可以看出 
  根据info群组,然后根据keyId 取数值的分布位置
  keyId =-1 在info群组a 中 离基准数 keyId=2 非常远 所以界定为0.3 
  keyId =1 在info群组a 中 离基准数 keyId=2 比keyId=-1近 所以界定为0.6
  依次类推... 
*/
select *,
cume_dist() over(partition by info order by keyId) as cume_dist 
 from @test 
 
mssql_sqlserver_cume_dist数值分布函数使用说明

mssql_sqlserver_cume_dist数值分布函数使用说明