聚合函数 - Amazon Timestream

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

聚合函数

Timestream LiveAnalytics 支持以下聚合函数。

函数 输出数据类型 描述

任意 (x)

[与输入相同]

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

SELECT arbitrary(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:1

array_agg (x)

数组< [与输入相同]

返回由输入 x 个元素创建的数组。

SELECT array_agg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:[ 1,2,3,4 ]

平均值 (x)

double

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

SELECT avg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:2.5

bool_and(布尔值)每个(布尔值)

布尔值

TRUE如果每个输入值都是TRUE,则返回,否则返回FALSE。

SELECT bool_and(t.c) FROM (VALUES true, true, false, true) AS t(c)

结果示例:false

bool_or(布尔值)

布尔值

TRUE如果有任何输入值为,则返回TRUE,否则返回FALSE。

SELECT bool_or(t.c) FROM (VALUES true, true, false, true) AS t(c)

结果示例:true

计数 (*) 计数 (x)

bigint

count (*) 返回输入行的数量。

count (x) 返回非空输入值的数量。

SELECT count(t.c) FROM (VALUES true, true, false, true) AS t(c)

结果示例:4

count_if (x)

bigint

返回TRUE输入值的数量。

SELECT count_if(t.c) FROM (VALUES true, true, false, true) AS t(c)

结果示例:3

几何平均值 (x)

double

返回所有输入值的几何平均值。

SELECT geometric_mean(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:2.213363839400643

max_by (x, y)

[与 x 相同]

返回所有输入值中与 y 的最大值关联的 x 值。

SELECT max_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

结果示例:d

max_by (x, y, n)

数组< [same as x] >

按照 y 的降序返回与 y 的所有输入值中最大的 n 个关联的 x 值。

SELECT max_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

结果示例:[ d,c ]

min_by (x, y)

[与 x 相同]

返回所有输入值中与 y 的最小值关联的 x 值。

SELECT min_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

结果示例:a

min_by (x, y, n)

数组< [same as x] >

按照 y 的升序返回与 y 的所有输入值中最小的 n 个相关联的 x 值。

SELECT min_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

结果示例:[ a,b ]

最大值 (x)

[与输入相同]

返回所有输入值的最大值。

SELECT max(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:4

最大值 (x, n)

数组< [same as x] >

返回 x 的所有输入值中的 n 个最大值。

SELECT max(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:[ 4,3 ]

最小 (x)

[与输入相同]

返回所有输入值的最小值。

SELECT min(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:1

最小 (x, n)

数组< [same as x] >

返回 x 的所有输入值中的 n 个最小值。

SELECT min(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:[ 1,2 ]

总和 (x)

[与输入相同]

返回所有输入值的总和。

SELECT sum(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:10

bitwise_and_agg (x)

bigint

以 2s 补码AND表示形式返回所有输入值的位数。

SELECT bitwise_and_agg(t.c) FROM (VALUES 1, -3) AS t(c)

结果示例:1

bitwise_or_agg (x)

bigint

以 2s 补码表示形式返回所有输入值的按位或。

SELECT bitwise_or_agg(t.c) FROM (VALUES 1, -3) AS t(c)

结果示例:-3

近似不同 (x)

bigint

返回不同输入值的大致数量。此函数提供计数 (DISTINCTx) 的近似值。如果所有输入值均为空,则返回零。此函数应生成 2.3% 的标准误差,这是所有可能集合(近似正态)误差分布的标准差。它不能保证任何特定输入集的错误都有上限。

SELECT approx_distinct(t.c) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)

结果示例:5

approx_distinct (x, e)

bigint

返回不同输入值的大致数量。此函数提供计数 (DISTINCTx) 的近似值。如果所有输入值均为空,则返回零。此函数产生的标准误应不大于 e,即(近似正态)误差分布在所有可能集合上的标准差。它不能保证任何特定输入集的错误都有上限。此函数的当前实现要求 e 在 [0.0040625,0.26000] 的范围内。

SELECT approx_distinct(t.c, 0.2) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)

结果示例:5

approx_percentile (x,百分比)

[与 x 相同]

按给定百分比返回 x 的所有输入值的近似百分位数。百分比的值必须介于零和一之间,并且所有输入行的百分比值必须保持不变。

SELECT approx_percentile(t.c, 0.4) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:2

近似百分位数(x,百分比)

数组< [same as x] >

在每个指定百分比下,返回 x 的所有输入值的近似百分位数。百分比数组的每个元素都必须介于零和一之间,并且所有输入行的数组都必须是恒定的。

SELECT approx_percentile(t.c, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:[ 1,4,4 ]

approx_percentile(x、w、百分比)

[与 x 相同]

使用每件商品的权重 w 和百分比 p 返回所有输入值 x 的近似加权百分位数。权重必须是至少为 1 的整数值。它实际上是百分位数集中值 x 的复制计数。p 的值必须介于零和一之间,并且对于所有输入行都必须是恒定的。

SELECT approx_percentile(t.c, 1, 0.1) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:1

approx_percentile(x、w、百分比)

数组< [same as x] >

使用数组中指定的每个给定百分比处的每项权重 w 返回 x 的所有输入值的近似加权百分位数。权重必须是至少为 1 的整数值。它实际上是百分位数集中值 x 的复制计数。数组的每个元素都必须介于零和一之间,并且所有输入行的数组都必须是恒定的。

SELECT approx_percentile(t.c, 1, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:[ 1,4,4 ]

approx_percentile(x、w、百分比、精度)

[与 x 相同]

返回所有输入值 x 的近似加权百分位数,使用每件商品的权重 w 以百分比 p 为准,最大等级误差为精度。权重必须是至少为 1 的整数值。它实际上是百分位数集中值 x 的复制计数。p 的值必须介于零和一之间,并且对于所有输入行都必须是恒定的。精度必须是大于零且小于一的值,并且所有输入行的精度必须是恒定的。

SELECT approx_percentile(t.c, 1, 0.1, 0.5) FROM (VALUES 1, 2, 3, 4) AS t(c)

结果示例:1

corr (y, x)

double

返回输入值的相关系数。

SELECT corr(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

结果示例:1.0

covar_pop (y, x)

double

返回输入值的总体协方差。

SELECT covar_pop(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

结果示例:1.25

covar_samp (y, x)

double

返回输入值的样本协方差。

SELECT covar_samp(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

结果示例:1.6666666666666667

regr_intercept (y, x)

double

返回输入值的线性回归截距。y 是因值。x 是独立值。

SELECT regr_intercept(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

结果示例:0.0

regr_slope (y, x)

double

返回输入值的线性回归斜率。y 是因值。x 是独立值。

SELECT regr_slope(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

结果示例:1.0

偏度 (x)

double

返回所有输入值的偏度。

SELECT skewness(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

结果示例:0.8978957037987335

stddev_pop (x)

double

返回所有输入值的总体标准差。

SELECT stddev_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

结果示例:2.4166091947189146

stddev_samp (x) stddev (x)

double

返回所有输入值的样本标准差。

SELECT stddev_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

结果示例:2.701851217221259

var_pop (x)

double

返回所有输入值的总体方差。

SELECT var_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

结果示例:5.840000000000001

var_samp (x) 方差 (x)

double

返回所有输入值的样本方差。

SELECT var_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

结果示例:7.300000000000001