Arrays erstellen
Zum Erstellen eines Arrayliterals in Athena verwenden Sie das Schlüsselwort ARRAY, gefolgt von Klammern [ ], und schließen die durch Kommata getrennten Array-Elemente ein.
Beispiele
Diese Abfrage erstellt ein Array mit vier Elementen.
SELECT ARRAY [1,2,3,4] AS items
Folgendes wird zurückgegeben:
+-----------+
| items |
+-----------+
| [1,2,3,4] |
+-----------+
Diese Abfrage erstellt zwei Arrays.
SELECT ARRAY[ ARRAY[1,2], ARRAY[3,4] ] AS items
Folgendes wird zurückgegeben:
+--------------------+
| items |
+--------------------+
| [[1, 2], [3, 4]] |
+--------------------+
Zum Erstellen eines Arrays aus ausgewählten Spalten kompatibler Typen nutzen Sie eine Abfrage, wie im folgenden Beispiel gezeigt:
WITH dataset AS ( SELECT 1 AS x, 2 AS y, 3 AS z ) SELECT ARRAY [x,y,z] AS items FROM dataset
Diese Abfrage gibt Folgendes zurück:
+-----------+
| items |
+-----------+
| [1,2,3] |
+-----------+
Im folgenden Beispiel werden zwei Arrays ausgewählt und in Form einer Willkommensnachricht zurückgegeben.
WITH dataset AS ( SELECT ARRAY ['hello', 'amazon', 'athena'] AS words, ARRAY ['hi', 'alexa'] AS alexa ) SELECT ARRAY[words, alexa] AS welcome_msg FROM dataset
Diese Abfrage gibt Folgendes zurück:
+----------------------------------------+
| welcome_msg |
+----------------------------------------+
| [[hello, amazon, athena], [hi, alexa]] |
+----------------------------------------+
Zum Erstellen eines Arrays aus Schlüssel/Wert-Paaren nutzen Sie den MAP-Operator. Dieser verwendet ein Schlüssel-Array gefolgt von einem Werte-Array, wie im folgenden Beispiel gezeigt:
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
Diese Abfrage gibt Folgendes zurück:
+-----------------------------------------------------------------------------------------------------+
| people |
+-----------------------------------------------------------------------------------------------------+
| [{last=Smith, first=Bob, age=40}, {last=Doe, first=Jane, age=30}, {last=Smith, first=Billy, age=8}] |
+-----------------------------------------------------------------------------------------------------+