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

本文详细介绍了SQL中用于统计分析的函数,包括均值(AVG)、中位数(通过percentile或percentile_approx函数实现)、众数(通过分组和计数方法获取)、标准差(stddev_pop和stddev_samp)以及方差(var_pop和var_samp)。针对不同数据类型和需求,提供了相应的查询示例,帮助理解这些统计函数的使用和区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  • 均值
    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,都是1NΣi=1N(xi−xmean)2\sqrt{\frac1N \Sigma_{i=1}^N(x_i-x_{mean})^2}N1Σi=1N(xixmean)2,而stddev_samp1N−1Σi=1N(xi−xmean)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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值