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

> Greenwald-Khanna 알고리즘을 사용하여 숫자형 데이터 시퀀스의 분위수를 계산합니다.

# quantileGK

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

도입 버전: v23.4.0

[Greenwald-Khanna](http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf) 알고리즘을 사용해 숫자 데이터 시퀀스의 [`분위수`](https://en.wikipedia.org/wiki/Quantile)를 계산합니다.

Greenwald-Khanna 알고리즘은 데이터 스트림의 분위수를 매우 효율적으로 계산하는 데 사용되는 알고리즘입니다.
이 알고리즘은 2001년에 Michael Greenwald와 Sanjeev Khanna가 처음 소개했습니다.
대규모 데이터 스트림에서 정확한 분위수를 실시간으로 계산해야 하는 데이터베이스 및 빅데이터 시스템에서 널리 사용됩니다.
이 알고리즘은 매우 효율적이며, 각 항목마다 O(log n)의 공간과 O(log log n)의 시간만 사용합니다(n은 입력 크기).
또한 정확도도 높아, 높은 확률로 근사 분위수 값을 제공합니다.

`quantileGK`는 사용자가 근사 분위수 결과의 정확도를 제어할 수 있다는 점에서 ClickHouse의 다른 분위수 함수와 다릅니다.

**구문**

```sql theme={null}
quantileGK(accuracy, level)(expr)
```

**별칭**: `medianGK`

**매개변수**

* `accuracy` — 분위수의 정확도입니다. 상수 양의 정수입니다. 정확도 값이 클수록 오류는 줄어듭니다. 예를 들어 `accuracy` 인수를 100으로 설정하면 계산된 분위수의 오류는 높은 확률로 1%를 넘지 않습니다. 계산된 분위수의 정확도와 알고리즘의 계산 복잡도 사이에는 상충 관계가 있습니다. 정확도 값이 클수록 분위수를 정확하게 계산하기 위해 더 많은 메모리와 컴퓨트 리소스가 필요합니다. 반면 `accuracy` 인수 값이 작을수록 정확도는 다소 낮아지지만, 더 빠르고 메모리 효율적으로 계산할 수 있습니다. [`UInt*`](/ko/reference/data-types/int-uint)
* `level` — 선택 사항입니다. 분위수 수준입니다. 0부터 1까지의 상수 부동소수점 수입니다. 기본값은 0.5입니다. `level=0.5`이면 함수는 중앙값을 계산합니다. [`Float*`](/ko/reference/data-types/float)

**인수**

* `expr` — 컬럼 값에 대한 표현식으로, 결과는 숫자 데이터 타입, Date 또는 DateTime이어야 합니다. [`(U)Int*`](/ko/reference/data-types/int-uint) 또는 [`Float*`](/ko/reference/data-types/float) 또는 [`Decimal*`](/ko/reference/data-types/decimal) 또는 [`Date`](/ko/reference/data-types/date) 또는 [`DateTime`](/ko/reference/data-types/datetime)

**반환 값**

지정한 수준과 정확도의 분위수를 반환합니다. [`Float64`](/ko/reference/data-types/float) 또는 [`Date`](/ko/reference/data-types/date) 또는 [`DateTime`](/ko/reference/data-types/datetime)

**예시**

**정확도 수준별 분위수 계산**

```sql title=Query theme={null}
SELECT quantileGK(1, 0.25)(number + 1) FROM numbers(1000);
```

```response title=Response theme={null}
┌─quantileGK(1, 0.25)(plus(number, 1))─┐
│                                    1 │
└──────────────────────────────────────┘
```

**고정밀 분위수**

```sql title=Query theme={null}
SELECT quantileGK(100, 0.25)(number + 1) FROM numbers(1000);
```

```response title=Response theme={null}
┌─quantileGK(100, 0.25)(plus(number, 1))─┐
│                                    251 │
└────────────────────────────────────────┘
```

**관련 항목**

* [median](/ko/reference/functions/aggregate-functions/median)
* [quantiles](/ko/reference/functions/aggregate-functions/quantiles)
