

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.

# Utilisation des fonctions d’agrégation avec des tableaux
<a name="arrays-and-aggregation"></a>
+ 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, consultez [Création de tableaux à partir de sous-requêtes](creating-arrays-from-subqueries.md).

**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     |
+----------------------+
```