hive统计函数 中位数 均值 方差等

目标统计值:均值、方差、标准差、众数、中位数。

  • 均值
    AVG
    eg: select avg(item_a) from table_a;
  • 中位数
    percentile或者percentile_approx,此函数本是求分位数,但是0.5的分位数不就是中位数嘛!
    若是int型(bigint等)用percentile 例:select percentitle(item_a,0.5) from table_a;
    若是float(或者double等)用percentile_approx,例:select percentitle_approx(item_a,0.5) from table_a
    approx是approximate的简写。
  • 众数
    众数没有函数。从帖子中可以看到有此种写法:
    SELECT salary,COUNT(*) AS cnt
    FROM salaries
    GROUP BY salary
    HAVING count(*) >= ALL(SELECT COUNT(*) FROM salaries GROUP BY salary) 
    
    但此种写法不适合多字段同时获得。至于用不用,看你需求了。
  • 标准差
    你可以看到一些帖子写了三个:stddev,stddev_samp,stddev_pop。他们的关系是stddev=stddev_pop,都是 1 N Σ i = 1 N ( x i − x m e a n ) 2 \sqrt{\frac1N \Sigma_{i=1}^N(x_i-x_{mean})^2} N1Σi=1N(xixmean)2 ,而stddev_samp 1 N − 1 Σ i = 1 N ( x i − x m e a n ) 2 \sqrt{\frac1{N-1} \Sigma_{i=1}^N(x_i-x_{mean})^2} N11Σi=1N(xixmean)2 。至于用哪个,看你选择了。 例:select stddev_pop(item_a) from table_a;
  • 方差
    var_popvar_samp,差别同 标准差,不赘述。

致谢:

  • https://blog.csdn.net/haramshen/article/details/52668586
  • https://www.cxyzjd.com/article/weixin_34883093/112637731
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值