Skip to main content
Edit this page

quantileDeterministic

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

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

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

構文

quantileDeterministic(level)(expr, determinator)

エイリアス: medianDeterministic.

引数

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

戻り値

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

型:

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

入力テーブル:

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

クエリ:

SELECT quantileDeterministic(val, 1) FROM t

結果:

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

関連項目