Uso de funciones de agregación con matrices - Amazon Athena

Uso de funciones de agregación con matrices

  • Para añadir valores dentro de una matriz, utilice SUM, como en el ejemplo siguiente.

  • Para agregar varias filas de una misma matriz, utilice array_agg. Para obtener más información, consulte Creación de matrices a partir de subconsultas.

nota

ORDER BY es compatible con funciones de agregación que comienzan en la versión 2 del motor 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;

En la última instrucción SELECT, en lugar de utilizar sum() y UNNEST, puede utilizar reduce() para reducir el tiempo de procesamiento y la transferencia de datos, como en el ejemplo siguiente.

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;

Ambas consultas devuelven los siguientes resultados. El orden de los resultados devueltos no está garantizado.

+----------------------+ | array_items | total | +----------------------+ | [1, 2, 3, 4] | 10 | | [5, 6, 7, 8] | 26 | | [9, 0] | 9 | +----------------------+