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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值