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

> 숫자의 합을 계산하며, 결과에는 입력 매개변수와 동일한 데이터 타입을 사용합니다. 합계가 이 데이터 타입의 최댓값을 초과하면 오버플로우로 계산됩니다.

# sumWithOverflow

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

도입 버전: v1.1.0

입력 매개변수와 동일한 데이터 타입을 결과 타입으로 사용하여 숫자 값의 합계를 계산합니다.
합계가 이 데이터 타입의 최댓값을 초과하면 오버플로우가 발생한 상태로 계산됩니다.

**구문**

```sql theme={null}
sumWithOverflow(num)
```

**인수**

* `num` — 숫자 값으로 이루어진 컬럼입니다. [`(U)Int*`](/ko/reference/data-types/int-uint) 또는 [`Float*`](/ko/reference/data-types/float) 또는 [`Decimal*`](/ko/reference/data-types/decimal)

**반환 값**

값의 합입니다. [`(U)Int*`](/ko/reference/data-types/int-uint) 또는 [`Float*`](/ko/reference/data-types/float) 또는 [`Decimal*`](/ko/reference/data-types/decimal)

**예시**

**UInt16에서의 오버플로우 동작 예시**

```sql title=Query theme={null}
CREATE TABLE employees
(
    id UInt32,
    name String,
    monthly_salary UInt16 -- 값의 합산 결과가 오버플로우를 일으키도록 선택된 타입
)
ENGINE = Memory;

INSERT INTO employees VALUES
    (1, 'John', 20000),
    (2, 'Jane', 18000),
    (3, 'Bob', 12000),
    (4, 'Alice', 10000),
    (5, 'Charlie', 8000);

-- sum 함수와 sumWithOverflow 함수를 사용하여 직원 급여 총합을 쿼리하고, toTypeName 함수로 각 결과의 타입을 표시
-- sum 함수의 결과 타입은 합계를 충분히 수용할 수 있는 UInt64이며, sumWithOverflow의 결과 타입은 UInt16으로 유지됨

SELECT
    sum(monthly_salary) AS no_overflow,
    sumWithOverflow(monthly_salary) AS overflow,
    toTypeName(no_overflow),
    toTypeName(overflow)
FROM employees;
```

```response title=Response theme={null}
┌─no_overflow─┬─overflow─┬─toTypeName(no_overflow)─┬─toTypeName(overflow)─┐
│       68000 │     2464 │ UInt64                  │ UInt16               │
└─────────────┴──────────┴─────────────────────────┴──────────────────────┘
```
