聚合函数
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