Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
-
Per aggiungere valori all'interno di un array, utilizza
SUM
, come nell'esempio seguente. -
Per aggregare più righe all'interno di un array, utilizza
array_agg
. Per informazioni, consultare Creare array da sottoquery.
Nota
ORDER BY
è supportato per le funzioni di aggregazione a partire dalla versione 2 del motore Athena.
WITH
dataset AS (
SELECT ARRAY
[
ARRAY[1,2,3,4],
ARRAY[5,6,7,8],
ARRAY[9,0]
] AS items
),
item AS (
SELECT i AS array_items
FROM dataset, UNNEST(items) AS t(i)
)
SELECT array_items, sum(val) AS total
FROM item, UNNEST(array_items) AS t(val)
GROUP BY array_items;
Nell'ultima istruzione SELECT
, invece di utilizzare sum()
e UNNEST
, è possibile utilizzare reduce()
per ridurre il tempo di elaborazione e il trasferimento dei dati, come nell'esempio seguente.
WITH
dataset AS (
SELECT ARRAY
[
ARRAY[1,2,3,4],
ARRAY[5,6,7,8],
ARRAY[9,0]
] AS items
),
item AS (
SELECT i AS array_items
FROM dataset, UNNEST(items) AS t(i)
)
SELECT array_items, reduce(array_items, 0 , (s, x) -> s + x, s -> s) AS total
FROM item;
Qualsiasi query restituisce i seguenti risultati. L'ordine dei risultati restituiti non è garantito.
+----------------------+
| array_items | total |
+----------------------+
| [1, 2, 3, 4] | 10 |
| [5, 6, 7, 8] | 26 |
| [9, 0] | 9 |
+----------------------+