> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> t-digest アルゴリズムを使用して、各要素の重みを考慮しながら、異なるレベルで複数の近似分位点を同時に計算します。

# quantilesTDigestWeighted

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

導入バージョン: v20.1.0

[t-digest](https://github.com/tdunning/t-digest/blob/master/docs/t-digest-paper/histo.pdf) アルゴリズムを使用して、異なるレベルにおける数値データ列の複数の近似 [分位点](https://en.wikipedia.org/wiki/Quantile) を同時に計算します。
この関数は、数列の各要素の重みを考慮します。

この関数は [`quantileTDigestWeighted`](/docs/ja/reference/functions/aggregate-functions/quantileTDigestWeighted) と同等ですが、単一のパスで複数の分位点レベルを計算できるため、個々の分位点関数を呼び出すよりも効率的です。

最大誤差は 1% です。メモリ消費量は `log(n)` で、`n` は値の数です。

この関数の性能は、[`quantiles`](/docs/ja/reference/functions/aggregate-functions/quantiles) や [`quantilesTiming`](/docs/ja/reference/functions/aggregate-functions/quantilesTiming) よりも低くなります。
State サイズと精度の比率という点では、この関数は `quantiles` よりも大幅に優れています。

結果はクエリの実行順序に依存するため、非決定論的です。

<Note>
  `quantilesTDigestWeighted` を[小さなデータセットに使用することは推奨されておらず](https://github.com/tdunning/t-digest/issues/167#issuecomment-828650275)、大きな誤差につながる可能性があります。
  この場合は、代わりに [`quantilesTDigest`](/docs/ja/reference/functions/aggregate-functions/quantilesTDigest) の使用を検討してください。
</Note>

**構文**

```sql theme={null}
quantilesTDigestWeighted(level1, level2, ...)(expr, weight)
```

**パラメータ**

* `level` — 分位点のレベル。0 から 1 までの定数の浮動小数点数を 1 つ以上指定します。`level` の値には `[0.01, 0.99]` の範囲を使用することを推奨します。[`Float*`](/docs/ja/reference/data-types/float)

**引数**

* `expr` — カラムの値に対する式。結果の data type は数値型、`Date`、または `DateTime` です。[`(U)Int*`](/docs/ja/reference/data-types/int-uint) または [`Float*`](/docs/ja/reference/data-types/float) または [`Date`](/docs/ja/reference/data-types/date) または [`DateTime`](/docs/ja/reference/data-types/datetime)
* `weight` — 数列の要素の重みを持つカラム。重みは値の出現回数です。[`UInt*`](/docs/ja/reference/data-types/int-uint)

**戻り値**

指定した levels の近似分位点を、指定した levels と同じ順序で格納した Array。入力が `Date` または `DateTime` の場合、出力フォーマットは入力フォーマットと一致します。[`Array(Float32)`](/docs/ja/reference/data-types/array) または [`Array(Date)`](/docs/ja/reference/data-types/array) または [`Array(DateTime)`](/docs/ja/reference/data-types/array)

**例**

**t-digest を使用して複数の重み付き分位点を計算する**

```sql title=Query theme={null}
SELECT quantilesTDigestWeighted(0.25, 0.5, 0.75)(number, 1) FROM numbers(100);
```

```response title=Response theme={null}
┌─quantilesTDigestWeighted(0.25, 0.5, 0.75)(number, 1)──┐
│ [24.75,49.5,74.25]                                    │
└───────────────────────────────────────────────────────┘
```
