Utiliser des fonctions d'agrégation avec des tableaux - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser des fonctions d'agrégation avec des tableaux

  • Pour ajouter des valeurs figurant dans un tableau, utilisez SUM, comme dans l'exemple suivant.

  • Pour regrouper plusieurs lignes dans un tableau, utilisez array_agg. Pour plus d’informations, veuillez consulter Création de tableaux à partir de sous-requêtes.

Note

La commande ORDER BY est prise en charge pour les fonctions d'agrégation à partir de la version 2 du moteur 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;

Dans la dernière instruction SELECT, au lieu d'utiliser sum() et UNNEST, vous pouvez utiliser reduce() pour réduire le temps de traitement et le transfert de données, comme dans l'exemple suivant.

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;

La requête renvoie les résultats suivants. L'ordre des résultats renvoyés n'est pas garanti.

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