mssql sqlserver 分析函数 PERCENTILE_DISC使用说明简介


摘要:
下文介绍percentile_disc分析函数的用法及功能说明
实验环境:sqlserver 2012


一、percentile_disc分析函数功能及语法说明

1.1 PERCENTILE_DISC功能说明
取指定群组中百分比所对对应的值,同cume_dist互为相反分析函数(一个生成百分比 一个根据百分比生成值)
—————————————
1.2 PERCENTILE_DISC语法说明
PERCENTILE_DISC (参数1 )
WITHIN GROUP ( ORDER BY 排序字段 [ ASC | DESC ] )
OVER ( [ ] )
————————
参数1:
该参数只能输入 0~1之间的浮点数
返回值:
同 排序字段 具有相同的数据类型

注意事项:
因为使用了within group 关键字,所以数据库必须为兼容级别110或更高兼容级别。



二、percentile_disc分析函数举例应用

    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) 

/*
  返回 群组中数值分布0.6的的keyId值
*/
select *,
PERCENTILE_DISC(0.6)  
within group (order by keyId ) over(partition by info ) as PERCENTILE_DISC 
 from @test 
 
mssql_sqlserver_PERCENTILE_DISC分析函数用法简介

mssql_sqlserver_PERCENTILE_DISC分析函数用法简介