Hive 聚合函数
返回类型 | 函数名 | 描述 |
---|---|---|
BIGINT | count(*) count(expr) count(DISTINCT expr[, expr_.]) |
count(*) – 返回检索到的行的总数,包括含有NULL值的行。count(expr) – 返回expr表达式不是NULL的行的数量count(DISTINCT expr[, expr]) – 返回expr是唯一的且非NULL的行的数量 |
DOUBLE | sum(col) sum(DISTINCT col) |
对组内某列求和(包含重复值)或者对组内某列求和(不包含重复值) |
DOUBLE | avg(col), avg(DISTINCT col) |
对组内某列元素求平均值者(包含重复值或不包含重复值) |
DOUBLE | min(col) | 返回组内某列的最小值 |
DOUBLE | max(col) | 返回组内某列的最大值 |
DOUBLE | variance(col), var_pop(col) |
返回组内某个数字列的方差 |
DOUBLE | var_samp(col) | 返回组内某个数字列的无偏样本方差 |
DOUBLE | stddev_pop(col) | 返回组内某个数字列的标准差 |
DOUBLE | stddev_samp(col) | 返回组内某个数字列的无偏样本标准差 |
DOUBLE | covar_pop(col1, col2) | 返回组内两个数字列的总体协方差 |
DOUBLE | covar_samp(col1, col2) | 返回组内两个数字列的样本协方差 |
DOUBLE | corr(col1, col2) | 返回组内两个数字列的皮尔逊相关系数 |
DOUBLE | percentile(BIGINT col, p) | 返回组内某个列精确的第p位百分数,p必须在0和1之间 |
array |
percentile(BIGINT col, array(p1 [, p2]...)) | 返回组内某个列精确的第p1,p2,……位百分数,p必须在0和1之间 |
DOUBLE | percentile_approx(DOUBLE col, p [, B]) | 返回组内数字列近似的第p位百分数(包括浮点数),参数B控制近似的精确度,B值越大,近似度越高,默认值为10000。当列中非重复值的数量小于B时,返回精确的百分数 |
array |
percentile_approx(DOUBLE col, array(p1 [, p2]...) [, B]) | 同上,但接受并返回百分数数组 |
array |
histogram_numeric(col, b) | 使用b个非均匀间隔的箱子计算组内数字列的柱状图(直方图),输出的数组大小为b,double类型的(x,y)表示直方图的中心和高度 |
array | collect_set(col) | 返回消除了重复元素的数组 |
array | collect_list(col) | 返回允许重复元素的数组 |
INTEGER | ntile(INTEGER x) | 该函数将已经排序的分区分到x个桶中,并为每行分配一个桶号。这可以容易的计算三分位,四分位,十分位,百分位和其它通用的概要统计 |