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

> SimpleAggregateFunction 데이터 타입에 대한 문서

# SimpleAggregateFunction 유형

<div id="description">
  ## 설명
</div>

`SimpleAggregateFunction` 데이터 타입은 집계 함수의 중간 상태를 저장하지만, [`AggregateFunction`](/ko/reference/data-types/aggregatefunction)
타입처럼 전체 상태를 저장하지는 않습니다.

이 최적화는 다음 속성을 만족하는 함수에 적용할 수
있습니다:

> 행 집합 `S1 UNION ALL S2`에 함수 `f`를 적용한 결과는
> 행 집합의 각 파트에 `f`를 개별적으로 적용한 뒤, 그 결과에 다시
> `f`를 적용해 얻을 수 있습니다: `f(S1 UNION ALL S2) = f(f(S1) UNION ALL f(S2))`.

이 속성은 부분 집계 결과만으로도 결합된 결과를 계산하는 데 충분하다는
것을 보장하므로, 추가 데이터를 저장하거나 처리할 필요가 없습니다. 예를
들어 `min` 또는 `max` 함수는 중간 단계의 결과만으로 최종 결과를
추가 단계 없이 계산할 수 있지만, `avg` 함수는 합계와 개수를 함께
추적해야 합니다. 그런 다음 중간 상태를 결합하는 최종 `Merge` 단계에서
이 값을 나누어 평균을 계산합니다.

집계 함수 값은 일반적으로 함수 이름 뒤에 [`-SimpleState`](/ko/reference/functions/aggregate-functions/combinators#-simplestate) combinator를 붙여
집계 함수를 호출하면 생성됩니다.

<div id="syntax">
  ## 구문
</div>

```sql theme={null}
SimpleAggregateFunction(aggregate_function_name, types_of_arguments...)
```

**매개변수**

* `aggregate_function_name` - 집계 함수 이름입니다.
* `유형` - 집계 함수 인수의 타입입니다.

<div id="supported-functions">
  ## 지원되는 함수
</div>

다음 집계 함수가 지원됩니다.

* [`any`](/ko/reference/functions/aggregate-functions/any)
* [`any_respect_nulls`](/ko/reference/functions/aggregate-functions/any)
* [`anyLast`](/ko/reference/functions/aggregate-functions/anyLast)
* [`anyLast_respect_nulls`](/ko/reference/functions/aggregate-functions/anyLast)
* [`min`](/ko/reference/functions/aggregate-functions/min)
* [`max`](/ko/reference/functions/aggregate-functions/max)
* [`sum`](/ko/reference/functions/aggregate-functions/sum)
* [`sumWithOverflow`](/ko/reference/functions/aggregate-functions/sumWithOverflow)
* [`groupBitAnd`](/ko/reference/functions/aggregate-functions/groupBitAnd)
* [`groupBitOr`](/ko/reference/functions/aggregate-functions/groupBitOr)
* [`groupBitXor`](/ko/reference/functions/aggregate-functions/groupBitXor)
* [`groupArrayArray`](/ko/reference/functions/aggregate-functions/groupArrayArray)
* [`groupUniqArrayArray`](/ko/reference/functions/aggregate-functions/groupUniqArray)
* [`groupUniqArrayArrayMap`](/ko/reference/functions/aggregate-functions/combinators#-map)
* [`sumMap` (`sumMappedArrays`)](/ko/reference/functions/aggregate-functions/sumMap)
* [`minMap` (`minMappedArrays`)](/ko/reference/functions/aggregate-functions/minMap)
* [`maxMap` (`maxMappedArrays`)](/ko/reference/functions/aggregate-functions/maxMap)

<Note>
  `SimpleAggregateFunction(func, 유형)`의 값은 모두 동일한 `유형`이므로,
  `AggregateFunction` 유형과는 달리
  `-Merge`/`-State` 컴비네이터를 적용할 필요가 없습니다.

  `SimpleAggregateFunction` 유형은 동일한 집계 함수에서 `AggregateFunction`보다
  더 나은 성능을 제공합니다.
</Note>

<div id="example">
  ## 예시
</div>

```sql theme={null}
CREATE TABLE simple (id UInt64, val SimpleAggregateFunction(sum, Double)) ENGINE=AggregatingMergeTree ORDER BY id;
```

<div id="related-content">
  ## 관련 콘텐츠
</div>

* 블로그: [ClickHouse에서 집계 조합자 사용하기](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states)    - 블로그: [ClickHouse에서 집계 조합자 사용하기](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states)
* [AggregateFunction](/ko/reference/data-types/aggregatefunction) 타입.
