

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics，可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间，以实现实时分析。点击[此处](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)了解更多信息。

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

# 聚合函数
<a name="aggregate-functions"></a>

Timestream LiveAnalytics 支持以下聚合函数。


| 函数 | 输出数据类型 | 说明 | 
| --- | --- | --- | 
|  arbitrary(x)  |  [与输入相同]  |  返回 x 的任意非 null 值（如果存在）。 <pre>SELECT arbitrary(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`1`  | 
|  array\$1agg(x)  |  数组<[与输入相同]  |  返回由输入 x 个元素创建的数组。 <pre>SELECT array_agg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`[ 1,2,3,4 ]`  | 
|  avg(x)  |  double  |  返回所有输入值的平均值（算术平均值）。 <pre>SELECT avg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`2.5`  | 
|  bool\$1and(boolean) every(boolean)   |  布尔值  |  如果每个输入值都为 TRUE，则返回 TRUE，否则返回 FALSE。 <pre>SELECT bool_and(t.c) FROM (VALUES true, true, false, true) AS t(c)</pre> 示例结果：`false`  | 
|  bool\$1or(boolean)  |  布尔值  |  如果任何输入值为 TRUE，则返回 TRUE，否则返回 FALSE。 <pre>SELECT bool_or(t.c) FROM (VALUES true, true, false, true) AS t(c)</pre> 示例结果：`true`  | 
|  count(\$1) count(x)  |  bigint  |  count(\$1) 返回输入行的数量。 count(x) 返回非 null 输入值的数量。 <pre>SELECT count(t.c) FROM (VALUES true, true, false, true) AS t(c)</pre> 示例结果：`4`  | 
|  count\$1if(x)   |  bigint  |  返回 TRUE 输入值的数量。 <pre>SELECT count_if(t.c) FROM (VALUES true, true, false, true) AS t(c)</pre> 示例结果：`3`  | 
|  geometric\$1mean(x)  |  double  |  返回所有输入值的几何平均值。 <pre>SELECT geometric_mean(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`2.213363839400643`  | 
|  max\$1by(x, y)   |  [与 x 相同]  |  返回所有输入值中与 y 的最大值相关联的 x 值。 <pre>SELECT max_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)</pre> 示例结果：`d`  | 
|  max\$1by(x, y, n)   |  数组<[与 x 相同]>  |  返回与所有输入 y 值中降序排列的 n 个最大值相关联的 n 个 x 值。 <pre>SELECT max_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)</pre> 示例结果：`[ d,c ]`  | 
|  min\$1by(x, y)  |  [与 x 相同]  |  返回所有输入值中与 y 的最小值相关联的 x 值。 <pre>SELECT min_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)</pre> 示例结果：`a`  | 
|  min\$1by(x, y, n)  |  数组<[与 x 相同]>  |  返回与所有输入 y 值中升序排列的 n 个最小值相关联的 n 个 x 值。 <pre>SELECT min_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)</pre> 示例结果：`[ a,b ]`  | 
|  max(x)  |  [与输入相同]  |  返回所有输入值的最大值。 <pre>SELECT max(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`4`  | 
|  max(x, n)  |  数组<[与 x 相同]>  |  返回 x 的所有输入值中的 n 个最大值。 <pre>SELECT max(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`[ 4,3 ]`  | 
|  min(x)  |  [与输入相同]  |  返回所有输入值的最小值。 <pre>SELECT min(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`1`  | 
|  min(x, n)  |  数组<[与 x 相同]>  |  返回 x 的所有输入值中的 n 个最小值。 <pre>SELECT min(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`[ 1,2 ]`  | 
|  sum(x)   |  [与输入相同]  |  返回所有输入值的总和。 <pre>SELECT sum(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`10`  | 
|  bitwise\$1and\$1agg(x)  |  bigint  |  返回所有输入值以 2 补码表示形式的按位与结果。 <pre>SELECT bitwise_and_agg(t.c) FROM (VALUES 1, -3) AS t(c)</pre> 示例结果：`1`  | 
|  bitwise\$1or\$1agg(x)  |  bigint  |  返回所有输入值以 2 补码表示形式的按位或结果。 <pre>SELECT bitwise_or_agg(t.c) FROM (VALUES 1, -3) AS t(c)</pre> 示例结果：`-3`  | 
|  approx\$1distinct(x)   |  bigint  |  返回输入值中不同值的大致数量 此函数提供对 count(DISTINCT x) 的近似值。如果所有输入值均为 null，则返回零。此函数应生成 2.3% 的标准误差，即所有可能集合（近似正态）误差分布的标准差。该函数不能保证对任何特定输入集的误差存在上限。 <pre>SELECT approx_distinct(t.c) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)</pre> 示例结果：`5`  | 
|  approx\$1distinct(x, e)  |  bigint  |  返回输入值中不同值的大致数量 此函数提供对 count(DISTINCT x) 的近似值。如果所有输入值均为 null，则返回零。此函数应生成不大于 e 的标准误差，即所有可能集合（近似正态）误差分布的标准差。该函数不能保证对任何特定输入集的误差存在上限。此函数的当前实施要求 e 在 [0.0040625，0.26000] 范围内。 <pre>SELECT approx_distinct(t.c, 0.2) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)</pre> 示例结果：`5`  | 
|  approx\$1percentile(x, percentage)   |  [与 x 相同]  |  返回所有输入值 x 在给定百分比下的近似百分位数。百分比值必须介于零到一之间，且对所有输入行保持恒定。 <pre>SELECT approx_percentile(t.c, 0.4) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`2`  | 
|  approx\$1percentile(x, percentages)   |  数组<[与 x 相同]>  |  返回所有输入值 x 在每个指定百分比下的近似百分位数。百分比数组的每个元素都必须介于零到一之间，且该数组对所有输入行必须保持恒定。 <pre>SELECT approx_percentile(t.c, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`[ 1,4,4 ]`  | 
|  approx\$1percentile(x, w, percentage)   |  [与 x 相同]  |  返回所有输入值 x 在百分比 p 处使用单项权重 w 计算的近似加权百分位数。权重必须是至少为 1 的整数值。该值实际上是百分位数集中值 x 的复制计数。p 值必须介于零到一之间，且对所有输入行保持恒定。 <pre>SELECT approx_percentile(t.c, 1, 0.1) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`1`  | 
|  approx\$1percentile(x, w, percentages)   |  数组<[与 x 相同]>  |  返回所有输入值 x 在数组中指定百分比处使用每项权重 w 计算的近似加权百分位数。权重必须是至少为 1 的整数值。该值实际上是百分位数集中值 x 的复制计数。数组的每个元素都必须介于零到一之间，且该数组对所有输入行必须保持恒定。 <pre>SELECT approx_percentile(t.c, 1, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`[ 1,4,4 ]`  | 
|  approx\$1percentile(x, w, percentage, accuracy)  |  [与 x 相同]  |  返回所有输入值 x 在百分比 p 处使用单项权重 w 计算的近似加权百分位数，最大等级误差为精度。权重必须是至少为 1 的整数值。该值实际上是百分位数集中值 x 的复制计数。p 值必须介于零到一之间，且对所有输入行保持恒定。精度必须是大于零且小于一的值，且对所有输入行保持恒定。 <pre>SELECT approx_percentile(t.c, 1, 0.1, 0.5) FROM (VALUES 1, 2, 3, 4) AS t(c)</pre> 示例结果：`1`  | 
|  corr(y, x)  |  double  |  返回输入值的相关系数。 <pre>SELECT corr(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)</pre> 示例结果：`1.0`  | 
|  covar\$1pop(y, x)  |  double  |  返回输入值的总体协方差。 <pre>SELECT covar_pop(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)</pre> 示例结果：`1.25`  | 
|  covar\$1samp(y, x)   |  double  |  返回输入值的样本协方差。 <pre>SELECT covar_samp(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)</pre> 示例结果：`1.6666666666666667`  | 
|  regr\$1intercept(y, x)  |  double  |  返回输入值的线性回归截距。y 为因变量，x 为自变量。 <pre>SELECT regr_intercept(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)</pre> 示例结果：`0.0`  | 
|  regr\$1slope(y, x)  |  double  |  返回输入值的线性回归斜率。y 为因变量，x 为自变量。 <pre>SELECT regr_slope(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)</pre> 示例结果：`1.0`  | 
|  skewness(x)  |  double  |  返回所有输入值的偏度。 <pre>SELECT skewness(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)</pre> 示例结果：`0.8978957037987335`  | 
|  stddev\$1pop(x)  |  double  |  返回所有输入值的总体标准差 <pre>SELECT stddev_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)</pre> 示例结果：`2.4166091947189146`  | 
|  stddev\$1samp(x) stddev(x)  |  double  |  返回所有输入值的样本标准差。 <pre>SELECT stddev_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)</pre> 示例结果：`2.701851217221259`  | 
|  var\$1pop(x)   |  double  |  返回所有输入值的总体方差。 <pre>SELECT var_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)</pre> 示例结果：`5.840000000000001`  | 
|  var\$1samp(x) variance(x)   |  double  |  返回所有输入值的样本方差。 <pre>SELECT var_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)</pre> 示例结果：`7.300000000000001`  | 