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

> `key` 배열에 지정된 키를 기준으로 `value` 배열의 합계를 계산합니다. 두 개의 배열로 이루어진 튜플을 반환하며, 각각 정렬된 순서의 키와 해당 키별로 합산된 값입니다. 오버플로우를 허용한 상태로 합산을 수행한다는 점에서 sumMap 함수와 다릅니다.

# sumMapWithOverflow

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

도입 버전: v20.1.0

`key` 배열에 지정된 키를 기준으로 `value` 배열을 합산합니다. 두 개의 배열로 이루어진 튜플을 반환하며, 첫 번째는 정렬된 순서의 키 배열이고 두 번째는 각 키에 대응하는 합산된 값 배열입니다.
이 함수는 [`sumMap`](/ko/reference/functions/aggregate-functions/sumMap) 함수와 달리 오버플로우를 포함한 합산을 수행합니다. 즉, 합산 결과의 데이터 타입으로 인수의 데이터 타입과 동일한 타입을 반환합니다.

<Note>
  * 키 배열과 값 배열로 이루어진 튜플을 전달하는 것은 키 배열과 값 배열을 각각 전달하는 것과 동일합니다.
  * 합산되는 각 행에서 `key`와 `value`의 원소 수는 같아야 합니다.
</Note>

**구문**

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

**인수**

* `key` — 키 배열. [`Array`](/ko/reference/data-types/array)
* `value` — 값 배열. [`Array`](/ko/reference/data-types/array)

**반환 값**

두 개의 배열로 이루어진 튜플을 반환합니다. 첫 번째는 정렬된 순서의 키이고, 두 번째는 해당 키에 대응하는 값의 합계입니다. [`Tuple(Array, Array)`](/ko/reference/data-types/tuple)

**예시**

**오버플로우 동작을 보여주는 배열 구문**

```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)) │
└─────────────────────┴────────────────────────────────────┴───────────────────────────────────┘
```

**같은 결과를 반환하는 Tuple 구문**

```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)) │
└─────────────────────┴────────────────────────────────────┴─────────────────────────────────┘
```

**관련 항목**

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