メインコンテンツへスキップ
メインコンテンツへスキップ

quantileTDigestWeighted

quantileTDigestWeighted

導入バージョン: v20.1

数値データシーケンスに対して t-digest アルゴリズムを使用して、おおよその分位数を計算します。 この関数は、シーケンス内の各要素の重みを考慮に入れます。

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

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

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

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

注記

quantileTDigestWeighted の使用はごく小さいデータセットに対しては推奨されておらず、大きな誤差につながる可能性があります。 この場合は、代わりに quantileTDigest の使用を検討してください。

構文

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* または Decimal* または Date または DateTime
  • weight — シーケンス要素の重みを持つカラム。重みは、その値が出現する回数です。UInt*

戻り値

指定されたレベルの近似分位数。Float64 または Date または DateTime

t-digest を用いた重み付き分位数の計算

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

関連項目