如何在Oracle SQL中计算分位数95

问题描述 投票:-3回答:1

如何使用SQL或PL / SQL计算分位数95值?

sql oracle
1个回答
4
投票

使用SQL聚合或分析函数PERCENTILE_DISC()(或者可能是PERCENTILE_CONT())。 Google为您的Oracle版本和函数名称查找这些函数的Oracle文档。

以下是我在HR.EMPLOYEES表中找到第95百分位工资的方法(HR是与许多Oracle数据库一起安装的标准HR模式):

select percentile_disc(0.95) within group (order by salary) as sal_95th_pctile
from   hr.employees
;

SAL_95TH_PCTILE
---------------
          13000

如果我想在每个部门找到第95百分位的薪水,我会使用分析版本:

select percentile_disc(0.95) within group (order by salary) 
                             over (partition by department_id) as sal_95th_pctile
from   hr.employees
;

对于HR.EMPLOYEES表来说这没有多大意义,因为每个部门只有少数员工,所以“第95百分位数”毫无意义;但是,当所有“部门”都有很多值来计算第95个百分点时,你就会这样做。

© www.soinside.com 2019 - 2024. All rights reserved.