testbook

聚合函数

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 transwarp;
Result: 1314


函数名返回类型描述
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_sample(x) Double 标准差
说明:
       返回指定列的样本标准差。

举例:
select stddev_sample(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, pc) Double 数值区域的百分比数值点
说明:
       返回数值区域的百分比数值点。0<=P<=1,否则返回NULL,不支持浮点型数值。

举例:
select percentile(1,1) from src;
Result: 0.0


函数名返回类型描述
percentile(BIGINT col, array(p1 [, p2]...)) Array<Double> 数值区域的百分比对应的数值点
说明:
       返回数值区域的一组百分比值分别对应的数值点。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