Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesTDigest

quantilesTDigest

導入バージョン: v1.1.0

t-digest アルゴリズムを使用して、異なるレベルにおける数値データ列の複数の近似分位点を同時に計算します。

この関数は quantileTDigest と同等ですが、複数の分位点レベルを 1 回の処理で計算できるため、個別の分位点関数を呼び出すより効率的です。

メモリ消費量は log(n) で、n は値の数です。結果はクエリの実行順序に依存し、非決定論的です。

この関数の性能は quantilesquantilesTiming より低くなります。一方で、State サイズと精度の比率という点では、この関数は quantiles より大幅に優れています。

構文

quantilesTDigest(level1, level2, ...)(expr)

パラメータ

  • level — 分位点のレベル。0 から 1 までの定数の浮動小数点数を 1 つ以上指定します。level の値には [0.01, 0.99] の範囲を使用することを推奨します。Float*

引数

  • expr — カラムの値に対する式。結果は数値 data type、Date、または DateTime である必要があります。(U)Int* または Float* または Date または DateTime

戻り値

指定したレベルの近似分位点を、指定した順序どおりに格納した Array。Date および DateTime 入力の場合、出力フォーマットは入力フォーマットと一致します。Array(Float32) または Array(Date) または Array(DateTime)

t-digest を使用して複数の分位点を計算する

SELECT quantilesTDigest(0.25, 0.5, 0.75)(number) FROM numbers(100);
┌─quantilesTDigest(0.25, 0.5, 0.75)(number)─┐
│ [24,49,74]                                │
└───────────────────────────────────────────┘
Navigation