本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立陣列
若要在 Athena 中建置陣列常值,請使用 ARRAY
關鍵字,後面接著方括弧 [ ]
並包含陣列元素 (以逗號分隔)。
範例
此查詢會建立具有四個元素的陣列。
SELECT ARRAY [1,2,3,4] AS items
它會傳回:
+-----------+
| items |
+-----------+
| [1,2,3,4] |
+-----------+
此查詢會建立兩個陣列。
SELECT ARRAY[ ARRAY[1,2], ARRAY[3,4] ] AS items
它會傳回:
+--------------------+
| items |
+--------------------+
| [[1, 2], [3, 4]] |
+--------------------+
若要從選取的相容類型資料欄建立陣列,請使用查詢,如此範例所示:
WITH dataset AS ( SELECT 1 AS x, 2 AS y, 3 AS z ) SELECT ARRAY [x,y,z] AS items FROM dataset
此查詢會傳回:
+-----------+
| items |
+-----------+
| [1,2,3] |
+-----------+
在以下範例中,選取了兩個陣列,並以歡迎訊息傳回。
WITH dataset AS ( SELECT ARRAY ['hello', 'amazon', 'athena'] AS words, ARRAY ['hi', 'alexa'] AS alexa ) SELECT ARRAY[words, alexa] AS welcome_msg FROM dataset
此查詢會傳回:
+----------------------------------------+
| welcome_msg |
+----------------------------------------+
| [[hello, amazon, athena], [hi, alexa]] |
+----------------------------------------+
若要建立一系列的金鑰值組,請使用 MAP
運算子,其會使用一系列的金鑰,接著是一系列的值,如此範例所示:
SELECT ARRAY[ MAP(ARRAY['first', 'last', 'age'],ARRAY['Bob', 'Smith', '40']), MAP(ARRAY['first', 'last', 'age'],ARRAY['Jane', 'Doe', '30']), MAP(ARRAY['first', 'last', 'age'],ARRAY['Billy', 'Smith', '8']) ] AS people
此查詢會傳回:
+-----------------------------------------------------------------------------------------------------+
| people |
+-----------------------------------------------------------------------------------------------------+
| [{last=Smith, first=Bob, age=40}, {last=Doe, first=Jane, age=30}, {last=Smith, first=Billy, age=8}] |
+-----------------------------------------------------------------------------------------------------+