聚合函数 - Amazon Timestream
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从2025年6月20日起,亚马逊Timestream版 LiveAnalytics 将不再向新客户开放。如果您想使用亚马逊 Timestream LiveAnalytics,请在该日期之前注册。现有客户可以继续照常使用该服务。有关更多信息,请参阅 Amazon Timestream 以了解 LiveAnalytics 可用性变更。

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

聚合函数

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,否则返回 FALSE。

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

结果示例:false

bool_or(布尔值)

布尔值

如果任何输入值为真,则返回 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 补码表示形式返回所有输入值的按位与。

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

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

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

结果示例:5

approx_distinct (x, e)

bigint

返回不同输入值的大致数量。此函数提供计数的近似值(DISTINCT x)。如果所有输入值均为空,则返回零。此函数产生的标准误应不大于 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