陣列函數 - Amazon Timestream

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

陣列函數

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

函式 輸出資料類型 描述

array_distinct(x)

陣列

從陣列 x 移除重複的值。

SELECT array_distinct(ARRAY[1,2,2,3])

範例結果: [ 1,2,3 ]

array_intersect(x, y)

陣列

傳回 x 和 y 交集的元素陣列,不重複。

SELECT array_intersect(ARRAY[1,2,3], ARRAY[3,4,5])

範例結果: [ 3 ]

array_union(x, y)

陣列

傳回 x 和 y 聯合中的元素陣列,不重複。

SELECT array_union(ARRAY[1,2,3], ARRAY[3,4,5])

範例結果: [ 1,2,3,4,5 ]

array_except(x, y)

陣列

傳回 x 中的元素陣列,但不傳回 y 中的元素陣列,不傳回重複項目。

SELECT array_except(ARRAY[1,2,3], ARRAY[3,4,5])

範例結果: [ 1,2 ]

array_join(x, delimiter, null_replacement)

varchar

使用分隔符號和選用字串來串連指定陣列的元素,以取代 null。

SELECT array_join(ARRAY[1,2,3], ';', '')

範例結果: 1;2;3

array_max(x)

與陣列元素相同

傳回輸入陣列的最大值。

SELECT array_max(ARRAY[1,2,3])

範例結果: 3

array_min(x)

與陣列元素相同

傳回輸入陣列的最小值。

SELECT array_min(ARRAY[1,2,3])

範例結果: 1

array_position(x, 元素)

bigint

傳回 陣列 x 中元素第一次出現的位置 (如果找不到,則為 0)。

SELECT array_position(ARRAY[3,4,5,9], 5)

範例結果: 3

array_remove(x, 元素)

陣列

從 x 陣列移除所有等於元素的元素。

SELECT array_remove(ARRAY[3,4,5,9], 4)

範例結果: [ 3,5,9 ]

array_sort(x)

陣列

排序並傳回陣列 x。x 的元素必須可排序。Null 元素將放置在傳回陣列的結尾。

SELECT array_sort(ARRAY[6,8,2,9,3])

範例結果: [ 2,3,6,8,9 ]

arrays_overlap(x, y)

boolean

測試陣列 x 和 y 是否有任何非空元素是共同的。如果沒有共同的非空元素,但任一陣列都包含空值,則傳回空值。

SELECT arrays_overlap(ARRAY[6,8,2,9,3], ARRAY[6,8])

範例結果: true

cardinality(x)

bigint

傳回陣列 x 的大小。

SELECT cardinality(ARRAY[6,8,2,9,3])

範例結果: 5

concat(array1, array2, ..., arrayN )

陣列

串連陣列陣列1、Array2、...、arrayN。

SELECT concat(ARRAY[6,8,2,9,3], ARRAY[11,32], ARRAY[6,8,2,0,14])

範例結果: [ 6,8,2,9,3,11,32,6,8,2,0,14 ]

element_at(array(E),索引)

E

傳回指定索引的陣列元素。如果索引 < 0, element_at 會存取從最後一個到第一個的元素。

SELECT element_at(ARRAY[6,8,2,9,3], 1)

範例結果: 6

repeat(元素,計數)

陣列

針對計數時間重複 元素。

SELECT repeat(1, 3)

範例結果: [ 1,1,1 ]

reverse(x)

陣列

傳回具有反向陣列 x 順序的陣列。

SELECT reverse(ARRAY[6,8,2,9,3])

範例結果: [ 3,9,2,8,6 ]

sequence(開始、停止)

array(bigint)

從開始到停止產生整數序列,如果開始小於或等於停止,則增加 1,否則為 -1。

SELECT sequence(3, 8)

範例結果: [ 3,4,5,6,7,8 ]

sequence(開始、停止、步驟)

array(bigint)

產生從開始到停止的整數序列,逐步遞增。

SELECT sequence(3, 15, 2)

範例結果: [ 3,5,7,9,11,13,15 ]

sequence(開始、停止)

array(時間戳記)

產生從開始日期到結束日期的一系列時間戳記,以 1 天為單位遞增。

SELECT sequence('2023-04-02 19:26:12.941000000', '2023-04-06 19:26:12.941000000', 1d)

範例結果: [ 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(時間戳記)

產生從開始到停止的一系列時間戳記,依步驟遞增。步驟的資料類型是間隔。

SELECT sequence('2023-04-02 19:26:12.941000000', '2023-04-10 19:26:12.941000000', 2d)

範例結果: [ 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 的隨機排列。

SELECT shuffle(ARRAY[6,8,2,9,3])

範例結果: [ 6,3,2,9,8 ]

slice(x、開始、長度)

陣列

子集陣列 x 從索引開頭開始 (如果開頭為負值,則從結尾開始),長度為 。

SELECT slice(ARRAY[6,8,2,9,3], 1, 3)

範例結果: [ 6,8,2 ]

zip(array1, array2【, ...】)

array(row)

將指定陣列依元素合併為單一資料列陣列。如果引數的長度不平均,則缺少的值會填滿 NULL。

SELECT zip(ARRAY[6,8,2,9,3], ARRAY[15,24])

範例結果: [ ( 6, 15 ),( 8, 24 ),( 2, - ),( 9, - ),( 3, - ) ]