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

quantileDeterministic

数値データシーケンスの近似分位点を計算します。

この関数は、8192 までのリザーバーサイズを持つリザーバーサンプリングを適用し、サンプリングのための決定論的アルゴリズムを使用します。結果は決定論的です。正確な分位点を得るには、quantileExact 関数を使用してください。

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

構文

quantileDeterministic(level)(expr, determinator)

別名: medianDeterministic.

引数

  • level — 分位点のレベル。オプションのパラメータ。0 から 1 までの定数浮動小数点数。 [0.01, 0.99] の範囲の level 値を使用することをお勧めします。デフォルト値: 0.5。 level=0.5 の場合、関数は中央値を計算します。
  • expr — 数値のデータ型DateDateTime 型のカラムの値に対する式。
  • determinator — リザーバーサンプリングアルゴリズムにおいてランダム数生成器の代わりに使用されるハッシュ値を持つ数。これにより、サンプリングの結果が決定論的になります。決定子として、ユーザー ID やイベント ID のような任意の決定論的正の数を使用できます。同じ決定子の値が頻繁に発生すると、関数は正しく機能しません。

返される値

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

タイプ:

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

入力テーブル:

┌─val─┐
│   1 │
│   1 │
│   2 │
│   3 │
└─────┘

クエリ:

SELECT quantileDeterministic(val, 1) FROM t

結果:

┌─quantileDeterministic(val, 1)─┐
│                           1.5 │
└───────────────────────────────┘

関連項目