Presto 0.100 Documentation

5.12. 聚合函数

5.12. 聚合函数

聚合函数作用于一个数据集,计算出一个单独的结果。

除了 count()count_if()max_by()approx_distinct() , 所有聚合函数都忽略空值,如果没有输入或全部输入都为空时,返回空。 例如, sum() 返回空,而不是0。 avg() 会将数据中的空值进行计数。 coalesce 函数可以将空转换为0。

一般聚合函数

arbitrary(x) → [与输入相同]

返回 x 的任意非空值(如果存在的话)。

avg(x) → double

返回所有输入值的平均数(算术平均数)。

bool_and(boolean) → boolean

如果所有输入值都为 TRUE 返回 TRUE ,否则返回 FALSE

bool_or(boolean) → boolean

如果任何一个输入值为 TRUE 返回 TRUE ,否则返回 FALSE

count(*) → bigint

返回输入行的数量。

count(x) → bigint

返回非空输入值的数量。

count_if(x) → bigint

返回输入值为 TRUE 的数量。 本函数与 count(CASE WHEN x THEN 1 END) 相同。

every(boolean) → boolean

bool_and() 的别名。

max_by(x, y) → [与x相同]

返回 xy 的最大值进行关联的结果,通过全部输入值进行关联。

min_by(x, y) → [与x相同]

返回 xy 的最小值进行关联的结果,通过全部输入值进行关联。

max(x) → [与输入相同]

返回全部输入值的最大值。

min(x) → [与输入相同]

返回全部输入值的最小值。

sum(x) → [与输入相同]

返回全部输入值的和。

Map聚合函数

map_agg(key, value) → map<K,V>

返回一个由 key / value 键值对构成的map。

近似聚合函数

approx_distinct(x) → bigint

返回不重复输入值的近似数量。 本函数给出 count(DISTINCT x) 的近似值。 如果所有输入值都为空则返回0。

本函数会产生2.3%的误差, (近似正态)误差分布的标准偏差会覆盖全部数据集。 对于任意指定的输入, 不保证误差上限。

approx_distinct(x, e) → bigint

返回不重复输入值的近似数量。 本函数给出 count(DISTINCT x) 的近似值。 如果所有输入值都为空则返回0。

本函数会产生不超过 e 的误差, (近似正态)误差分布的标准偏差会覆盖全部数据集。 对于任意指定的输入, 不保证误差上限。 目前的函数实现要求 e 在[0.01150, 0.26000]范围之间。

approx_percentile(x, p) → [与输入相同]

按照百分比 p ,返回所有 x 输入值的近似百分比。 p 的值必须在0到1之间, 并且所有输入行必须为常量。

approx_percentile(x, w, p) → [与输入相同]

按照百分比 p ,返回所有 x 输入值的近似百分比。 每一项的宽度使用 w 。 至少有一个宽度为整数。 x 设置有效的百分位。 p 的值必须在0到1之间, 并且所有输入行必须为常量。

numeric_histogram(buckets, value, weight) → map<double, double>

按照 buckets 桶的数量,为所有的 value 计算近似直方图, 每一项的宽度使用 weight 。 本算法大体上基于:

Yael Ben-Haim and Elad Tom-Tov, "A streaming parallel decision tree algorithm",
J. Machine Learning Research 11 (2010), pp. 849--872.

buckets 必须是 bigintvalueweight 必须是数值。

numeric_histogram(buckets, value) → map<double, double>

按照 buckets 桶的数量,为所有的 value 计算近似直方图, 本函数与 numeric_histogram() 相同, 只是没有 weight 参数,每一项的宽度都为 1

统计聚合函数

stddev(x) → double

stddev_samp() 的别名。

stddev_pop(x) → double

返回全部输入值的总体标准偏差。

stddev_samp(x) → double

返回全部输入值的样本标准偏差。

variance(x) → double

var_samp() 的别名。

var_pop(x) → double

返回全部输入值的总体方差。

var_samp(x) → double

返回全部输入值的样本方差。