> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# sumMap

> Exemple d’utilisation du combinateur sumMap

<div id="description">
  ## Description
</div>

Le combinateur [`Map`](/fr/reference/functions/aggregate-functions/combinators#-map) peut être appliqué à la fonction [`sum`](/fr/reference/functions/aggregate-functions/sum)
pour calculer la somme des valeurs d’une Map pour chaque clé, à l’aide de la fonction de
combinateur d’agrégation `sumMap`.

<div id="example-usage">
  ## Exemple d’utilisation
</div>

Dans cet exemple, nous allons créer une table qui stocke des codes d’état et leur nombre d’occurrences pour différents intervalles de temps,
où chaque ligne contient une Map associant des codes d’état à leur nombre d’occurrences. Nous utiliserons
`sumMap` pour calculer le nombre total d’occurrences de chaque code d’état dans chaque intervalle de temps.

```sql title="Query" theme={null}
CREATE TABLE metrics(
    date Date,
    timeslot DateTime,
    status Map(String, UInt64)
) ENGINE = MergeTree
ORDER BY ();

INSERT INTO metrics VALUES
    ('2000-01-01', '2000-01-01 00:00:00', (['a', 'b', 'c'], [15, 25, 35])),
    ('2000-01-01', '2000-01-01 00:00:00', (['c', 'd', 'e'], [45, 55, 65])),
    ('2000-01-01', '2000-01-01 00:01:00', (['d', 'e', 'f'], [75, 85, 95])),
    ('2000-01-01', '2000-01-01 00:01:00', (['f', 'g', 'g'], [105, 115, 125]));

SELECT
    timeslot,
    sumMap(status),
FROM metrics
GROUP BY timeslot;
```

La fonction `sumMap` calcule le nombre total pour chaque code d’état dans chaque intervalle de temps. Par exemple :

* Dans l’intervalle de temps '2000-01-01 00:00:00' :
  * Code d’état 'a' : 15
  * Code d’état 'b' : 25
  * Code d’état 'c' : 35 + 45 = 80
  * Code d’état 'd' : 55
  * Code d’état 'e' : 65
* Dans l’intervalle de temps '2000-01-01 00:01:00' :
  * Code d’état 'd' : 75
  * Code d’état 'e' : 85
  * Code d’état 'f' : 95 + 105 = 200
  * Code d’état 'g' : 115 + 125 = 240

```response title="Response" theme={null}
   ┌────────────timeslot─┬─sumMap(status)───────────────────────┐
1. │ 2000-01-01 00:01:00 │ {'d':75,'e':85,'f':200,'g':240}      │
2. │ 2000-01-01 00:00:00 │ {'a':15,'b':25,'c':80,'d':55,'e':65} │
   └─────────────────────┴──────────────────────────────────────┘
```

<div id="see-also">
  ## Voir aussi
</div>

* [`sum`](/fr/reference/functions/aggregate-functions/sum)
* [`Map combinateur`](/fr/reference/functions/aggregate-functions/combinators#-map)
