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,都是1NΣi=1N(xi−xmean)2\sqrt{\frac1N \Sigma_{i=1}^N(x_i-x_{mean})^2}N1Σi=1N(xi−xmean)2,而stddev_samp是1N−1Σi=1N(xi−xmean)2\sqrt{\frac1{N-1} \Sigma_{i=1}^N(x_i-x_{mean})^2}N−11Σi=1N(xi−xmean)2。至于用哪个,看你选择了。 例:select stddev_pop(item_a) from table_a; - 方差
var_pop和var_samp,差别同 标准差,不赘述。
致谢:
- https://blog.csdn.net/haramshen/article/details/52668586
- https://www.cxyzjd.com/article/weixin_34883093/112637731
更多推荐
所有评论(0)