

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

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

# 数组函数
<a name="array-functions"></a>

的 Timestream LiveAnalytics 支持以下数组函数。


| 函数 | 输出数据类型 | 说明 | 
| --- | --- | --- | 
|  array\$1distinct(x)  |  array  |  从数组 x 中删除重复值。 <pre>SELECT array_distinct(ARRAY[1,2,2,3])</pre> 示例结果：`[ 1,2,3 ]`  | 
|  array\$1intersect(x, y)  |  array  |  返回包含 x 和 y 交集元素的数组，且不含重复项。 <pre>SELECT array_intersect(ARRAY[1,2,3], ARRAY[3,4,5])</pre> 示例结果：`[ 3 ]`  | 
|  array\$1union(x, y)  |  array  |  返回包含 x 和 y 并集元素的数组，且不含重复项。 <pre>SELECT array_union(ARRAY[1,2,3], ARRAY[3,4,5])</pre> 示例结果：`[ 1,2,3,4,5 ]`  | 
|  array\$1except(x, y)  |  array  |  返回数组，包含 x 中的元素，但不包含 y 中的元素，且不包含重复项。 <pre>SELECT array_except(ARRAY[1,2,3], ARRAY[3,4,5])</pre> 示例结果：`[ 1,2 ]`  | 
|  array\$1join(x, delimiter, null\$1replacement)   |  varchar  |  使用分隔符和可选字符串连接给定数组的元素以替换 null 值。 <pre>SELECT array_join(ARRAY[1,2,3], ';', '')</pre> 示例结果：`1;2;3`  | 
|  array\$1max(x)  |  与数组元素相同  |  返回输入数组中的最大值。 <pre>SELECT array_max(ARRAY[1,2,3])</pre> 示例结果：`3`  | 
|  array\$1min(x)  |  与数组元素相同  |  返回输入数组中的最小值。 <pre>SELECT array_min(ARRAY[1,2,3])</pre> 示例结果：`1`  | 
|  array\$1position(x, element)  |  bigint  |  返回元素在数组 x 中首次出现的位置（如果未找到，则返回 0）。 <pre>SELECT array_position(ARRAY[3,4,5,9], 5)</pre> 示例结果：`3`  | 
|  array\$1remove(x, element)  |  array  |  从数组 x 中移除所有等于元素的元素。 <pre>SELECT array_remove(ARRAY[3,4,5,9], 4)</pre> 示例结果：`[ 3,5,9 ]`  | 
|  array\$1sort(x)  |  array  |  对数组 x 进行排序并返回。x 的元素必须可排序。Null 元素将放置在返回数组的末尾。 <pre>SELECT array_sort(ARRAY[6,8,2,9,3])</pre> 示例结果：`[ 2,3,6,8,9 ]`  | 
|  arrays\$1overlap(x, y)   |  布尔值  |  测试数组 x 和 y 是否有共同的非 null 元素。如果没有共同的非 null 元素，但任何一个数组包含 null 值，则返回 null。 <pre>SELECT arrays_overlap(ARRAY[6,8,2,9,3], ARRAY[6,8])</pre> 示例结果：`true`  | 
|  cardinality(x)  |  bigint  |  返回数组 x 的大小。 <pre>SELECT cardinality(ARRAY[6,8,2,9,3])</pre> 示例结果：`5`  | 
|  concat(array1, array2, ..., arrayN)  |  array  |  连接数组 array1、array2、...、arrayN。 <pre>SELECT concat(ARRAY[6,8,2,9,3], ARRAY[11,32], ARRAY[6,8,2,0,14])</pre> 示例结果：`[ 6,8,2,9,3,11,32,6,8,2,0,14 ]`  | 
|  element\$1at(array(E), index)  |  E  |  返回数组中指定索引处的元素。如果索引 < 0，则 element\$1at 从最后一个元素开始访问直至第一个元素。 <pre>SELECT element_at(ARRAY[6,8,2,9,3], 1)</pre> 示例结果：`6`  | 
|  repeat(element, count)   |  array  |  重复元素计数次数。 <pre>SELECT repeat(1, 3)</pre> 示例结果：`[ 1,1,1 ]`  | 
|  reverse(x)  |  array  |  返回一个数组，其顺序与数组 x 的顺序相反。 <pre>SELECT reverse(ARRAY[6,8,2,9,3])</pre> 示例结果：`[ 3,9,2,8,6 ]`  | 
|  sequence(start, stop)  |  array(bigint)  |  生成从 start 到 stop 的整数序列，如果 start 小于或等于 stop，则以 1 为增量，否则以 -1 为增量。 <pre>SELECT sequence(3, 8)</pre> 示例结果：`[ 3,4,5,6,7,8 ]`  | 
|  sequence(start, stop, step)   |  array(bigint)  |  生成从 start 到 stop 的整数序列，以 step 为增量。 <pre>SELECT sequence(3, 15, 2)</pre> 示例结果：`[ 3,5,7,9,11,13,15 ]`  | 
|  sequence(start, stop)   |  array(timestamp)  |  生成从 start date 到 stop date 的时间戳序列，以 1 天为增量。 <pre>SELECT sequence('2023-04-02 19:26:12.941000000', '2023-04-06 19:26:12.941000000', 1d)</pre> 示例结果：`[ 2023-04-02 19:26:12.941000000,2023-04-03 19:26:12.941000000,2023-04-04 19:26:12.941000000,2023-04-05 19:26:12.941000000,2023-04-06 19:26:12.941000000 ]`  | 
|  sequence(start, stop, step)   |  array(timestamp)  |  生成从 start 到 stop 的时间戳序列，以 step 为增量。step 的数据类型是间隔。 <pre>SELECT sequence('2023-04-02 19:26:12.941000000', '2023-04-10 19:26:12.941000000', 2d)</pre> 示例结果：`[ 2023-04-02 19:26:12.941000000,2023-04-04 19:26:12.941000000,2023-04-06 19:26:12.941000000,2023-04-08 19:26:12.941000000,2023-04-10 19:26:12.941000000 ]`  | 
|  shuffle(x)  |  array  |  生成给定数组 x 的随机排列。 <pre>SELECT shuffle(ARRAY[6,8,2,9,3])</pre> 示例结果：`[ 6,3,2,9,8 ]`  | 
|  slice(x, start, length)  |  array  |  子集数组 x 从索引开头开始（如果起始为负数，则从末尾开始），长度为 length。 <pre>SELECT slice(ARRAY[6,8,2,9,3], 1, 3)</pre> 示例结果：`[ 6,8,2 ]`  | 
|  zip(array1, array2[, ...])  |  array(row)  |  按元素将给定数组合并为单个行数组。如果参数长度不一致，则用 NULL 填充缺失值。 <pre>SELECT zip(ARRAY[6,8,2,9,3], ARRAY[15,24])</pre> 示例结果：`[ ( 6, 15 ),( 8, 24 ),( 2, - ),( 9, - ),( 3, - ) ]`  | 