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

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。

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

聚合函数

Timestream LiveAnalytics 支持以下聚合函数。

函数 输出数据类型 说明

arbitrary(x)

[与输入相同]

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

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 ]

avg(x)

double

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

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

示例结果:2.5

bool_and(boolean) every(boolean)

布尔值

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

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

示例结果:false

bool_or(boolean)

布尔值

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

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

示例结果:true

count(*) count(x)

bigint

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

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

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

geometric_mean(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)

数组<[与 x 相同]>

返回与所有输入 y 值中降序排列的 n 个最大值相关联的 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)

数组<[与 x 相同]>

返回与所有输入 y 值中升序排列的 n 个最小值相关联的 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 ]

max(x)

[与输入相同]

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

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

示例结果:4

max(x, n)

数组<[与 x 相同]>

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

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

示例结果:[ 4,3 ]

min(x)

[与输入相同]

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

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

示例结果:1

min(x, n)

数组<[与 x 相同]>

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

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

示例结果:[ 1,2 ]

sum(x)

[与输入相同]

返回所有输入值的总和。

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

示例结果:10

bitwise_and_agg(x)

bigint

返回所有输入值以 2 补码表示形式的按位与结果。

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

示例结果:1

bitwise_or_agg(x)

bigint

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

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

示例结果:-3

approx_distinct(x)

bigint

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

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

示例结果:5

approx_distinct(x, e)

bigint

返回输入值中不同值的大致数量 此函数提供对 count(DISTINCT x) 的近似值。如果所有输入值均为 null,则返回零。此函数应生成不大于 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, percentage)

[与 x 相同]

返回所有输入值 x 在给定百分比下的近似百分位数。百分比值必须介于零到一之间,且对所有输入行保持恒定。

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

示例结果:2

approx_percentile(x, percentages)

数组<[与 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, percentage)

[与 x 相同]

返回所有输入值 x 在百分比 p 处使用单项权重 w 计算的近似加权百分位数。权重必须是至少为 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, percentages)

数组<[与 x 相同]>

返回所有输入值 x 在数组中指定百分比处使用每项权重 w 计算的近似加权百分位数。权重必须是至少为 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, percentage, accuracy)

[与 x 相同]

返回所有输入值 x 在百分比 p 处使用单项权重 w 计算的近似加权百分位数,最大等级误差为精度。权重必须是至少为 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

skewness(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) variance(x)

double

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

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

示例结果:7.300000000000001