Hive聚合函数详细说明及用法

聚合函数

count, sum, avg, min, max, variance, var_pop, var_samp, stddev_pop, stddev_samp, covar_pop, covar_samp, corr, percentile, percentile_approx, histogram_numeric, collect_set

函数名       返回类型  描述
count(expr) Int      统计字段数量

说明
返回记录条数。

--举例
select count(1) from x_table--(表名);
Result: xxxx
函数名   返回类型   描述
sum(expr) Int     求和

说明
计算某一列所有值的和。

举例
select sum(1) from transwarp;
Result: 1314
函数名 返回类型 描述
avg(expr) Double 平均值

说明
返回某常数或者某一列的平均值。

举例
select avg(price) from transwarp;
Result: 100000
函数名 返回类型 描述
min(expr) 字段的公共类型 最小值

说明
返回某列的最小值。

举例
select min(price) from transwarp;
Result: 100000
函数名 返回类型 描述
max(expr) 字段的公共类型 最大值

说明
返回某列的最大值。

举例
select max(price) from transwarp;
Result: 100000
函数名 返回类型 描述
variance(x) Double 求方差

说明
返回某列所有值的方差。

举例
select variance(price) from transwarp;
Result: 0.0

函数名 返回类型 描述
var_pop(x) Double 求方差
说明
用法同 ‘variance’ 一致。
举例
select var_pop(price) from transwarp;
Result: 0.0
函数名 返回类型 描述
var_samp(x) Double 求样本方差

说明
返回指定列的样本方差。
举例
select var_samp(price) from transwarp;
Result: 0.0
函数名 返回类型 描述
std(x) Double 标准差
说明
返回指定列的标准差。
举例
select std(price) from transwarp;
Result: 0.0
函数名 返回类型 描述
stddev(x) Double 标准差
说明
返回指定列的标准差,用法和 ‘std’ 一致。
举例
select stddev(price) from transwarp;
Result: 0.0
函数名 返回类型 描述
stddev_pop(x) Double 标准差
说明
返回指定列的标准差,用法和 ‘std’ 一致。
举例
select stddev_pop(price) from transwarp;
Result: 0.0
函数名 返回类型 描述
stddev_samp(x) Double 标准差

说明
返回指定列的样本标准差。
举例
select stddev_samp(price) from transwarp;
Result: 7.45430868352036E-12
函数名 返回类型 描述
covar_pop(x,y) Double 总体协方差
说明
返回两列数值的协方差,计算方式是:当x和y都不为null的时候,(SUM(x*y)-SUM(x)*SUM(y)/ COUNT(x,y))/COUNT(x,y),否则返回null。
举例
select covar_pop(1,2) from transwarp;
Result: 0.0
函数名 返回类型 描述
covar_samp(x,y) Double 样本协方差
说明
返回两列的样本协方差。
举例
select covar_samp(1,1) from transwarp;
Result: 0.0
函数名 返回类型 描述
corr(x,y) String 统计字段数量
说明
返回两列数的皮尔森相关系数。
举例
select corr(1,1) from transwarp;
Result: NaN
函数名 返回类型 描述
percentile(expr, p) Double 数值区域的百分比数值点

说明
返回数值区域的百分比数值点。p的值必须取0到1之间,否则返回NULL,不支持浮点型数值。
举例
select percentile(1,1) from src;
Result: 0.0
函数名 返回类型 描述
percentile(BIGINT col, array(p1 [, p2]…))
Array 数值区域的百分比对应的数 值点
说明
返回数值区域的一组百分比值分别对应的数值点。0#P#1,否则返回NULL,不支持浮点型数值。
举例
select percentile(1,array(‘1’)) from src;
Result: [1.0]
函数名 返回类型 描述
percentile_approx(DOUBLE col, p [, B])
Double 数值区域的百分比数值点的 近似值
说明
返回数值区域的百分比数值点的近似值。0#P#1,否则返回NULL,支持浮点型数值。参数B设置精 确 度,越高的B值精确度越高,缺省值为10,000。当列中distinct值的数目小于B时,此时返 回准确值。
举例
SELECT percentile_approx(val, 0.56, 100000) FROM somedata;
Result: 2.26
函数名 返回类型 描述
percentile_approx(col, array(p~1, [, p,2_]…) [, B])
Array 数值区域的百分比数值点的 近似值
说明
与上个方法相似,除了接受与返回一组百分比数值点,而不是一个。
举例

SELECT percentile_approx(val, array(0.5, 0.95, 0.98), 100000) FROM somedata;
Result: [0.05,1.64,2.26]

函数名 返回类型 描述
histogram_numeric(expr, nb)

array 统计字段数量
说明
用nb的值计算数字类型expr的直方图
举例
SELECT histogram_numeric(1, 3) FROM transwarp;
Result: [{“x”:1.0,“y”:500.0},{“x”:1.0,“y”:499.0}]

函数名 返回类型 描述
collect_set(x) Array 去重

说明
返回没有重复的记录。
举例
select collect_set(price) from transwarp;
Result: 100000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值