Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileTDigestWeighted

quantileTDigestWeighted

導入バージョン: v20.1.0

t-digest アルゴリズムを使用して、数値データ列の近似分位点を近似的に計算します。 この関数は、数列の各要素の重みを考慮します。

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

この関数のパフォーマンスは、quantilequantileTiming より劣ります。 State のサイズと精度の比率という点では、この関数は quantile より大幅に優れています。

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

1 つのクエリ内で異なる levels を持つ複数の quantile* 関数を使用すると、内部状態は結合されません (つまり、クエリは本来可能なほど効率的には動作しません) 。 この場合は、quantiles 関数を使用してください。

構文

quantileTDigestWeighted(level)(expr, weight)

別名: medianTDigestWeighted

パラメータ

  • level — 任意。近似分位点のレベルを指定します。0 から 1 までの定数の浮動小数点数です。level には [0.01, 0.99] の範囲の値を使用することを推奨します。デフォルト値: 0.5。level=0.5 の場合、この関数は中央値を計算します。Float*

引数

  • expr — カラムの値に対する式。結果のデータ型は数値型、Date、または DateTime です。(U)Int* または Float* または Date または DateTime
  • weight — 数列の各要素の重みを表すカラム。重みは値の出現回数です。UInt*

戻り値

指定したレベルの近似分位点。Date および DateTime の入力では、出力フォーマットは入力フォーマットと一致します。Float32 または Date または DateTime

t-digest を使用した重み付き近似分位点の計算

SELECT quantileTDigestWeighted(number, 1) FROM numbers(10);
┌─quantileTDigestWeighted(number, 1)─┐
│                                  4 │
└────────────────────────────────────┘

関連項目

Navigation