Oracle中计算PERCENTILE_DISC()的数学方法是什么

smtd7mpg  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(164)

我有一系列的数字如下:2,3,5,1,9,10,20,34,77,55,11,13,56,99我写了一个查询来计算百分之二十五,如下所示:

SELECT
  PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY VALUE_DATA) AS percent_disc,
  PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY VALUE_DATA) AS percent_cont
FROM
  tmp_percentile

字符串
结果是:PERCENTILE_CONT(0.25)= 6和PERCENTILE_DISC(0.25)= 5。我通过这个链接学习了如何计算PERCENTILE_CONT:https://docs.oracle.com/cd/B13789_01/server.101/b10759/functions100.htm#i1000909。但是我仍然没有找到PERCENTILE_DISC的答案。为什么PERCENTILE_DISC(0.25)= 5

pu82cl6c

pu82cl6c1#

PERCENTILE_DISC返回数据中的实际值,而PERCENTILE_CONT可以返回数据中不存在的值。
PERCENTILE_DISC(0.25)函数将按升序对数字进行排序,然后选择第25百分位的值。

  • 排列数字:1,2,3,5,9,10,11,13,20,34,55,56,77,99
  • 找出第25个百分位数对应的位置。位置(P)的计算公式为:P = N * 百分位数,其中N是数据中的项目总数(即有14个项目),因此,P = 14 * 0.25 = 3.5。
  • 由于3.5不是整数,因此PERCENTILE_DISC函数舍入到最接近的整数(在本例中为4),返回该位置的数据值。因此,结果为5。

请参阅:https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/PERCENTILE_DISC.html#GUID-7C34FDDA-C241-474F-8C5C-50CC0182E005

相关问题