> ## 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.

> Calcule le total d’un tableau `value` selon les clés spécifiées dans le tableau `key`. Renvoie un tuple de deux tableaux : les clés dans l’ordre trié et les valeurs additionnées pour les clés correspondantes. Se distingue de la fonction sumMap en ce qu’elle effectue la sommation avec dépassement de capacité.

# sumMapWithOverflow

<div id="sumMapWithOverflow">
  ## sumMapWithOverflow
</div>

Introduite dans : v20.1.0

Calcule le total d’un tableau `value` selon les clés spécifiées dans le tableau `key`. Renvoie un tuple de deux tableaux : les clés dans l’ordre trié et les valeurs additionnées pour les clés correspondantes.
Cette fonction diffère de la fonction [`sumMap`](/fr/reference/functions/aggregate-functions/sumMap) en ce qu’elle effectue la sommation avec dépassement de capacité, c’est-à-dire qu’elle renvoie pour la somme le même type de données que celui de l’argument.

<Note>
  * Passer un tuple de tableaux de clés et de valeurs revient au même que passer un tableau de clés et un tableau de valeurs.
  * Le nombre d’éléments de `key` et de `value` doit être identique pour chaque ligne totalisée.
</Note>

**Syntaxe**

```sql theme={null}
sumMapWithOverflow(key, value)
sumMapWithOverflow(Tuple(key, value))
```

**Arguments**

* `key` — Tableau de clés. [`Array`](/fr/reference/data-types/array)
* `value` — Tableau de valeurs. [`Array`](/fr/reference/data-types/array)

**Valeur renvoyée**

Renvoie un tuple de deux tableaux : les clés triées et les valeurs sommées pour les clés correspondantes. [`Tuple(Array, Array)`](/fr/reference/data-types/tuple)

**Exemples**

**Syntaxe de tableau illustrant le comportement en cas de dépassement de capacité**

```sql title=Query theme={null}
CREATE TABLE sum_map(
    date Date,
    timeslot DateTime,
    statusMap Nested(
        status UInt8,
        requests UInt8
    ),
    statusMapTuple Tuple(Array(Int8), Array(Int8))
) ENGINE = Memory;

INSERT INTO sum_map VALUES
    ('2000-01-01', '2000-01-01 00:00:00', [1, 2, 3], [10, 10, 10], ([1, 2, 3], [10, 10, 10])),
    ('2000-01-01', '2000-01-01 00:00:00', [3, 4, 5], [10, 10, 10], ([3, 4, 5], [10, 10, 10])),
    ('2000-01-01', '2000-01-01 00:01:00', [4, 5, 6], [10, 10, 10], ([4, 5, 6], [10, 10, 10])),
    ('2000-01-01', '2000-01-01 00:01:00', [6, 7, 8], [10, 10, 10], ([6, 7, 8], [10, 10, 10]));

SELECT
    timeslot,
    toTypeName(sumMap(statusMap.status, statusMap.requests)),
    toTypeName(sumMapWithOverflow(statusMap.status, statusMap.requests))
FROM sum_map
GROUP BY timeslot;
```

```response title=Response theme={null}
┌────────────timeslot─┬─toTypeName(sumMap⋯usMap.requests))─┬─toTypeName(sumMa⋯usMap.requests))─┐
│ 2000-01-01 00:01:00 │ Tuple(Array(UInt8), Array(UInt64)) │ Tuple(Array(UInt8), Array(UInt8)) │
│ 2000-01-01 00:00:00 │ Tuple(Array(UInt8), Array(UInt64)) │ Tuple(Array(UInt8), Array(UInt8)) │
└─────────────────────┴────────────────────────────────────┴───────────────────────────────────┘
```

**Syntaxe Tuple pour obtenir le même résultat**

```sql title=Query theme={null}
SELECT
    timeslot,
    toTypeName(sumMap(statusMapTuple)),
    toTypeName(sumMapWithOverflow(statusMapTuple))
FROM sum_map
GROUP BY timeslot;
```

```response title=Response theme={null}
┌────────────timeslot─┬─toTypeName(sumMap(statusMapTuple))─┬─toTypeName(sumM⋯tatusMapTuple))─┐
│ 2000-01-01 00:01:00 │ Tuple(Array(Int8), Array(Int64))   │ Tuple(Array(Int8), Array(Int8)) │
│ 2000-01-01 00:00:00 │ Tuple(Array(Int8), Array(Int64))   │ Tuple(Array(Int8), Array(Int8)) │
└─────────────────────┴────────────────────────────────────┴─────────────────────────────────┘
```

**Voir aussi**

* [sumMap](/fr/reference/functions/aggregate-functions/sumMap)
