• /// http://en.wikipedia.org/wiki/Percentile#Linear_Interpolation_Between_Closest_Ranks /// Interpolation } 　 转载于:https://www.cnblogs.com/yuzukwok/archive/2013/06/06/3121502.html
看起来好像是个简单的分位数，其实还是蛮复杂的，各种不同的算法，Excel内的算法也很独特，初中课本上的算法也不一定对。
就看计算时候的要求了，具体实现我就不再赘述了


public enum PercentileMethod
{
/// <summary>
///  http://www.itl.nist.gov/div898/handbook/prc/section2/prc252.htm
/// </summary>
Nist = 0,

/// <summary>
/// http://en.wikipedia.org/wiki/Percentile#Nearest_Rank
/// </summary>
Nearest,

/// <summary>
///  http://www.itl.nist.gov/div898/handbook/prc/section2/prc252.htm
/// </summary>
Excel,

/// <summary>
///  http://en.wikipedia.org/wiki/Percentile#Linear_Interpolation_Between_Closest_Ranks
/// </summary>
Interpolation
}


转载于:https://www.cnblogs.com/yuzukwok/archive/2013/06/06/3121502.html
展开全文
• <div><p>This allows requesting different percentile than 95th to be calculated when requesting buckets. The REST API changes from <code>percentile95th</code> -> <code>percentile</code> parameter ...
• <p>When executing a percentile query, sometimes I would get the results, but other times I would get an NPE. <pre><code> SQLActionException: INTERNAL_SERVER_ERROR 5000 NullPointerException in io.crate...
• Only requested percentile columns are calculated and displayed. They are also preserved in CSV and JSON output formats if they are requested. <p>Had some issues running tox tests, but the core ...
• <div><p>The <a href="https://github.com/SciTools/iris/blob/master/lib/iris/analysis/__init__.py#L1052">_percentile</a> function that <code>iris.analysis.PERCENTILE</code> is based on allows the ...
• percentile函数和percentile_approx函数: 其使用方式为percentile(col, p)、percentile_approx(col, p,B)， .返回col列p分位上的值。B用来控制内存消耗的精度。实际col中distinct的值&lt;B返回的时精确的值。 ...
1、hive 计算千分位数:

percentile函数和percentile_approx函数:

其使用方式为percentile(col, p)、percentile_approx(col, p,B)， .返回col列p分位上的值。B用来控制内存消耗的精度。实际col中distinct的值<B返回的时精确的值。
其中percentile要求输入的字段必须是int类型的，而percentile_approx则是数值类似型的都可以 .

要求多个分位数时，可以把p换为array()，即

percentile_approx(col,array(0.05,0.5,0.95),9999)   或者

percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999

结果为

[0.0,4001.0,4061.0]

explode(percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999))as percentile 结果转换为列
展开全文
• HIVE中有两个关于分为数的函数：percentilepercentile_approx。 使用方式： percentilepercentile(col, p) col是要计算的列（值必须为int类型），p的取值为0-1，若为0.2，那么就是2分位数，依次类推。 ...
在做一些酒店产量分析时，用到统计学中常用的分位数函数，所以就学习了一下分位数函数在HIVE中的应用。

HIVE中有两个关于分为数的函数：percentile和percentile_approx。

使用方式：

percentile：percentile(col, p) col是要计算的列（值必须为int类型），p的取值为0-1，若为0.2，那么就是2分位数，依次类推。

percentile_approx：percentile_approx(col, p)。列为数值类型都可以。

percentile_approx还有一种形式percentile_approx(col, p，B)，参数B控制内存消耗的近似精度，B越大，结果的精度越高。默认值为10000。当col字段中的distinct值的个数小于B时，结果就为准确的百分位数。

如果需要多个分位数，可以一次性取出来，案例如下：

去每天的UV的第二个十分位数、第四个十分位数，第六个十分位数、第八个十分位数：

select d,
percentile_approx(uv, array(0.2,0.4,0.6,0.8), 9999) as uv --2%分位数作为最小值
from aa
group by d

结果如下：


展开全文
• hive里面有个percentile函数和percentile_approx函数，其使用方式为percentile(col, p)、percentile_approx(col, p)，p∈(0,1)p∈(0,1) 其中percentile要求输入的字段必须是int类型的，而percentile_approx则是...
hive里面有个percentile函数和percentile_approx函数，其使用方式为percentile(col, p)、percentile_approx(col, p)，p∈(0,1)p∈(0,1)

其中percentile要求输入的字段必须是int类型的，而percentile_approx则是数值类似型的都可以。

其实percentile_approx还有一个参数B：percentile_approx(col, p，B)。参数B控制内存消耗的近似精度，B越大，结果的准确度越高。默认为10,000。当col字段中的distinct值的个数小于B时，结果为准确的百分位数。

如果要求多个分位数，可以把p换为array(p1,p2,p3…p1,p2,p3…)，即

percentile_approx(col,array(0.05,0.5,0.95),9999)

如果不放心的话，就给col再加个转换：

percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999)percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999)

其输出结果长这样：

[0.0,4001.0,4061.0]

没法直接用啊！再加个转换：

explode(percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999))as percentileexplode(percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999))as percentile

输出结果就长这样了：

percentile
0
4001
4061
实际操作中，发现有时在计算分位数的时候mapper会卡在0%。
前面说过，如果distinct的值小于B，就会返回精确值，那么个人猜测是因为后台执行的过程是先做了一个select distinct limit B，然后排序得到分位数。如果distinct值特别多的情况下，仅仅是去重就是一个巨大的运算负担，更别说排序了。而当把B从10000调到100的时候很快就能跑出来了。

中位数函数: percentile
语法: percentile(BIGINT col, p)
返回值: double
说明: 求准确的第pth个百分位数，p必须介于0和1之间，但是col字段目前只支持整数，不支持浮点数类型

中位数函数: percentile
语法: percentile(BIGINT col, array(p1 [, p2]…))
返回值: array<double>
说明: 功能和上述类似，之后后面可以输入多个百分位数，返回类型也为array<double>，其中为对应的百分位数。

近似中位数函数: percentile_approx
语法: percentile_approx(DOUBLE col, p [, B])
返回值: double
说明: 求近似的第pth个百分位数，p必须介于0和1之间，返回类型为double，但是col字段支持浮点类型。参数B控制内存消耗的近似精度，B越大，结果的准确度越高。默认为10,000。当col字段中的distinct值的个数小于B时，结果为准确的百分位数

近似中位数函数: percentile_approx
语法: percentile_approx(DOUBLE col, array(p1 [, p2]…) [, B])
返回值: array<double>
说明: 功能和上述类似，之后后面可以输入多个百分位数，返回类型也为array<double>，其中为对应的百分位数。

直方图: histogram_numeric
语法: histogram_numeric(col, b)
返回值: array<struct {‘x’,'y’}>
说明: 以b为基准计算col的直方图信息。
举例：
hive> select histogram_numeric(100,5) from dual;
[{"x":100.0,"y":1.0}]

示例：中位数、平均数计算方法：

select

avg(t1.price) as avg_price,

percentile(int(price), 0.5) as mid_price

from

dev.devXXXXX

group by

cate_id,

cate_name;

展开全文
• Value Percentile TotalCount 1/(1-Percentile) 127.00000 0.000000 22 1.00 127.00000 1.000000 22 inf #[Mean = 96.000, StdDeviation = 0.000] #[Max = 127.000, Total count = 22] #...
• <div><p>Percentile aggregation methods would be very useful.</p><p>该提问来源于开源项目：graphite-project/carbon</p></div>
• <div><p>Hi, is it possible to calculate "Percentile-Aggregations" like the one in Elasticsearch?</p><p>该提问来源于开源项目：crate/crate</p></div>
• <div><p>Adds the option to calculate multiple percentiles in a single <code>PERCENTILE</code> aggregator call. For example: <pre><code> python result = cube.collapsed('time', iris.analysis...
• m testing the new SGA functionality and have noticed that the percentile does not return what I expected. On Version 0.66, when I run <code>exp.sga({'dimension': bbin}), I get the following ...
• <div><p>Added 97% as one of the latency percentiles ... This is useful, considering that the GNMT target percentile is supposed to be 97%.</p><p>该提问来源于开源项目：mlcommons/inference</p></div>
• The fast_percentile_method implemented in analysis uses the test </p><pre><code>isMaskedArray</code></pre> to determine if the input cube is masked, which precludes use of the fast percentile method,...
• percentile函数和percentile_approx函数 percentile(col, p) p∈(0,1) 传入两个参数，第一个参数类型必须是int，一般是某一列的数据， 返回的是col列的第p分位的值。 percentile_approx(col,p,B) p∈(0,1) ...
• PERCENTILE_CONT ( <expression1> ) WITHIN GROUP ( ORDER BY <expression2> [ ASC | DESC ] ) PERCENTILE_CONT和PERCENTILE_DISC都是为了计算百分位的数值，比如计算在某个百分位时某个栏位的数值...
• <div><p>...percentile_value']</code> and adding it to <code>doc/Support/Configuration.md</code> </p><p>该提问来源于开源项目：librenms/librenms</p></div>
• quartile=四分位数percentile=百分位数 纯计算的角度看，三个量的特殊值关系如下 0th quartile = 0th quantile = 0th percentile = min负无穷远点 1st quartile = .25th quantile = 25th percentile= lower quartile...
• 在python中计算一个多维数组的任意百分比分位数，此处的百分位是从小到大排列，只需用np.percentile即可…… a = range(1,101) #求取a数列第90%分位的数值 np.percentile(a, 90) Out[5]: 90.10000000000001 a = ...
• <div><p>The percentile funciton does neither the The Nearest Rank method nor The Weighted Percentile method nor the NIST method all defined here: http://en.wikipedia.org/wiki/Percentile</p> ...
• Percentile Ranks Aggregation 　一个multi-value指标聚合，它通过从聚合文档中提取数值来计算一个或多个百分比。这些值可以从特定数值字段中提取，也可以由提供的脚本生成。 　注意：请参考百分比（通常）近视值...
• s an erode, median and dilate filter, all of which are special cases of a more generic percentile filter. I believe it would make sense to use 4 arguments for such a generic percentile filter: a ...
• <p>First brought up in PR #790, there should be a percentile function added to the tensor backends that adheres to <a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.percentile....
• Excel: PERCENTILE.INC(A1:A5,0.2) = 1.6   Steps: 1. a = 0, 2, 3, 4, 5 2. percent = 0.2 3. n = 5 4. k = TRUNC(percent * (n – 1) + 1) = TRUNC(0.2 * 4 + 1) = TRUNC (1.8)...
• import percentile from '@elstats/percentile' ; // calculate p75 percentile ( [ 3 , 6 , 7 , 8 , 8 , 10 , 13 , 15 , 16 , 20 ] , 75 ) ; // → 15 例子2 const percentile = require ( '@esltats/...
• <div><p>It is not clear on how you can access the percentile and quantile data of a distribution. This is useful for value at risk evaluations</p><p>该提问来源于开源项目：getguesstimate/...
• Value Percentile TotalCount 1/(1-Percentile) 79.00 0.100000000000 1 1.11 79.00 0.100000000000 1 1.11 85.00 0.300000000000 3 1.43 89.00 0.400000000000 4 1.67 89.00 0.400000000000 4 1.67 98.00 0...
• np.percentile(a, q, axis=None, out=None, overwrite_input=False,\u00a0interpolation='linear', keepdims=False) a : array，用来算分位数的对象，可以是多维的数组 q : 介于0-100的float，用来计算是几分位...

...