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

quantileExactWeighted

数値データ系列の分位数を正確に計算し、各要素の重みを考慮します。

正確な値を得るために、渡されたすべての値は配列にまとめられ、部分的にソートされます。各値は、その値がweight回存在するかのように、その重みと共にカウントされます。アルゴリズムにはハッシュテーブルが使用されます。このため、渡された値が頻繁に繰り返される場合、関数はquantileExactよりも少ないRAMを消費します。この関数をquantileExactの代わりに使用し、重みを1として指定することができます。

クエリ内で異なるレベルの複数のquantile*関数を使用する際には、内部状態が結合されず(つまり、クエリの効率が低下します)、この場合はquantiles関数を使用してください。

構文

quantileExactWeighted(level)(expr, weight)

エイリアス: medianExactWeighted

引数

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

返される値

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

タイプ:

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

入力テーブル:

┌─n─┬─val─┐
│ 0 │   3 │
│ 1 │   2 │
│ 2 │   1 │
│ 5 │   4 │
└───┴─────┘

クエリ:

SELECT quantileExactWeighted(n, val) FROM t

結果:

┌─quantileExactWeighted(n, val)─┐
│                             1 │
└───────────────────────────────┘

関連項目