hive sql计算分位数

在观察数据的大致分布时,分位数是个常用的统计值,下面介绍在hive sql中计算分位数的语法

hive sql中计算分位数的函数:PERCENTILE_APPROX(适用于大数据量)

  • 使用格式:
-- 以数组形式返回多个百分位近似计算结果。
array<double> percentile_approx (double <colname>, array(<p1> [, <p2>...]) [, <B>])
  • 参数说明
    colname:必填。值为DOUBLE类型的列。
    p:必填。需要近似的百分位数。取值为[0.0,1.0]。
    B:精度参数。精度越高产生的近似值误差越小。如果不设置该参数,默认值为10000。当colname中值的数目小于B时,将给出精确的百分位值。
  • 返回值说明
    返回DOUBLE或ARRAY类型。如果设置多个分位数则返回ARRAY类型,只设置一个时,返回DOUBLE类型。

计算过程:

  1. 先对指定列升序排列,并从1开始依次编号,比如有一列数据为[40,50,20,10,30],先升序排列为[10,20,30,40,50],再依次编号为[1,2,3,4,5]
  2. 计算该列p百分位点,比如p为0.7,则5*0.7=3.5
  3. 计算第p位百分数对应的值,3.5表示值位于编号3和4之间,结果为30+(40-30)×0.5=35。

参考链接:PERCENTILE_APPROX

你可能感兴趣的:(数据分析,sql)