

如需與 Amazon Timestream for LiveAnalytics 類似的功能，請考慮使用 Amazon Timestream for InfluxDB。它提供簡化的資料擷取和單一位數毫秒查詢回應時間，以進行即時分析。[在這裡](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)進一步了解。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 陣列函數
<a name="array-functions"></a>

LiveAnalytics 的 Timestream 支援下列陣列函數。


| 函式 | 輸出資料類型 | Description | 
| --- | --- | --- | 
| array\_distinct(x) | 陣列 | 從陣列 x 移除重複的值。<pre>SELECT array_distinct(ARRAY[1,2,2,3])</pre><br />範例結果： `[ 1,2,3 ]` | 
| array\_intersect(x， y) | 陣列 | 傳回 x 和 y 交集的元素陣列，無需重複。<pre>SELECT array_intersect(ARRAY[1,2,3], ARRAY[3,4,5])</pre><br />範例結果： `[ 3 ]` | 
| array\_union(x， y) | 陣列 | 傳回 x 和 y 聯集的元素陣列，無需重複。<pre>SELECT array_union(ARRAY[1,2,3], ARRAY[3,4,5])</pre><br />範例結果： `[ 1,2,3,4,5 ]` | 
| array\_except(x， y) | 陣列 | 傳回 x 的元素陣列，但不傳回 y 的元素陣列，不重複。<pre>SELECT array_except(ARRAY[1,2,3], ARRAY[3,4,5])</pre><br />範例結果： `[ 1,2 ]` | 
| array\_join(x、delimiter、null\_replacement)  | varchar | 使用分隔符號和選用字串來串連指定陣列的元素，以取代 null。<pre>SELECT array_join(ARRAY[1,2,3], ';', '')</pre><br />範例結果： `1;2;3` | 
| array\_max(x) | 與陣列元素相同 | 傳回輸入陣列的最大值。<pre>SELECT array_max(ARRAY[1,2,3])</pre><br />範例結果： `3` | 
| array\_min(x) | 與陣列元素相同 | 傳回輸入陣列的最小值。<pre>SELECT array_min(ARRAY[1,2,3])</pre><br />範例結果： `1` | 
| array\_position(x， 元素） | bigint | 傳回元素在陣列 x 中第一次出現的位置 （如果找不到，則為 0)。<pre>SELECT array_position(ARRAY[3,4,5,9], 5)</pre><br />範例結果： `3` | 
| array\_remove(x， 元素） | 陣列 | 從陣列 x 移除所有等於元素的元素。<pre>SELECT array_remove(ARRAY[3,4,5,9], 4)</pre><br />範例結果： `[ 3,5,9 ]` | 
| array\_sort(x) | 陣列 | 排序並傳回陣列 x。x 的元素必須可排序。Null 元素將放置在傳回陣列的結尾。<pre>SELECT array_sort(ARRAY[6,8,2,9,3])</pre><br />範例結果： `[ 2,3,6,8,9 ]` | 
| arrays\_overlap(x， y)  | boolean | 測試陣列 x 和 y 是否有任何共同的非空元素。如果沒有常見的非 Null 元素，但任一陣列都包含 Null，則傳回 Null。<pre>SELECT arrays_overlap(ARRAY[6,8,2,9,3], ARRAY[6,8])</pre><br />範例結果： `true` | 
| cardinality(x) | bigint | 傳回陣列 x 的大小。<pre>SELECT cardinality(ARRAY[6,8,2,9,3])</pre><br />範例結果： `5` | 
| concat(array1， array2， ...， arrayN) | 陣列 | 串連陣列 array1、Array2、...、arrayN。<pre>SELECT concat(ARRAY[6,8,2,9,3], ARRAY[11,32], ARRAY[6,8,2,0,14])</pre><br />範例結果： `[ 6,8,2,9,3,11,32,6,8,2,0,14 ]` | 
| element\_at(array(E)，索引） | E | 傳回指定索引的陣列元素。如果索引 < 0， element\_at 會存取從最後一個到第一個的元素。<pre>SELECT element_at(ARRAY[6,8,2,9,3], 1)</pre><br />範例結果： `6` | 
| repeat（元素，計數）  | 陣列 | 針對計數時間重複 元素。<pre>SELECT repeat(1, 3)</pre><br />範例結果： `[ 1,1,1 ]` | 
| reverse(x) | 陣列 | 傳回具有反向陣列 x 順序的陣列。<pre>SELECT reverse(ARRAY[6,8,2,9,3])</pre><br />範例結果： `[ 3,9,2,8,6 ]` | 
| sequence（開始、停止） | array(bigint) | 從開始到停止產生整數序列，如果開始小於或等於停止，則遞增 1，否則為 -1。<pre>SELECT sequence(3, 8)</pre><br />範例結果： `[ 3,4,5,6,7,8 ]` | 
| sequence（開始、停止、步驟）  | array(bigint) | 從開始到停止產生整數序列，逐步遞增。<pre>SELECT sequence(3, 15, 2)</pre><br />範例結果： `[ 3,5,7,9,11,13,15 ]` | 
| sequence（開始、停止）  | array（時間戳記） | 產生從開始日期到結束日期的一系列時間戳記，以 1 天為單位遞增。<pre>SELECT sequence('2023-04-02 19:26:12.941000000', '2023-04-06 19:26:12.941000000', 1d)</pre><br />範例結果： `[ 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（開始、停止、步驟）  | array（時間戳記） | 從開始到停止產生一系列時間戳記，逐步遞增。步驟的資料類型是間隔。<pre>SELECT sequence('2023-04-02 19:26:12.941000000', '2023-04-10 19:26:12.941000000', 2d)</pre><br />範例結果： `[ 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) | 陣列 | 產生指定陣列 x 的隨機排列。<pre>SELECT shuffle(ARRAY[6,8,2,9,3])</pre><br />範例結果： `[ 6,3,2,9,8 ]` | 
| slice(x， start， length) | 陣列 | 子集合陣列 x 從索引開頭開始 （如果開頭為負值，則從結尾開始），長度為 。<pre>SELECT slice(ARRAY[6,8,2,9,3], 1, 3)</pre><br />範例結果： `[ 6,8,2 ]` | 
| zip(array1， array2【， ...】) | array(row) | 將指定陣列依元素合併為單一資料列陣列。如果引數的長度不平均，則缺少的值會填入 NULL。<pre>SELECT zip(ARRAY[6,8,2,9,3], ARRAY[15,24])</pre><br />範例結果： `[ ( 6, 15 ),( 8, 24 ),( 2, - ),( 9, - ),( 3, - ) ]` | 