メインコンテンツまでスキップ
メインコンテンツまでスキップ

quantileTDigestWeighted

数値データシーケンスの近似分位数t-digestアルゴリズムを使用して算出します。この関数は、各シーケンスメンバーの重みを考慮に入れます。最大誤差は1%です。メモリ消費はlog(n)で、ここでnは値の数です。

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

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

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

注記

tiny data setsに対してquantileTDigestWeightedの使用は推奨されませんであり、重大な誤差を引き起こす可能性があります。この場合は、quantileTDigestの使用を検討してください。

構文

quantileTDigestWeighted(level)(expr, weight)

エイリアス: medianTDigestWeighted.

引数

  • level — 分位数のレベル。オプションのパラメーター。0から1の範囲の定数浮動小数点数。[0.01, 0.99]の範囲のlevel値の使用を推奨します。デフォルト値: 0.5。level=0.5では、関数は中央値を算出します。
  • expr — 数値のデータ型Date、またはDateTimeのカラム値に対する式。
  • weight — シーケンス要素の重みを持つカラム。重みは値の出現回数です。

返される値

  • 指定されたレベルの近似分位数。

タイプ:

  • 数値データ型入力の場合はFloat64
  • 入力値がDate型の場合はDate
  • 入力値がDateTime型の場合はDateTime

クエリ:

SELECT quantileTDigestWeighted(number, 1) FROM numbers(10)

結果:

┌─quantileTDigestWeighted(number, 1)─┐
│                                4.5 │
└────────────────────────────────────┘

関連項目