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

quantileDeterministic

数値データ系列の概算分位数を計算します。

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

1 つのクエリ内で異なるレベルの複数の quantile* 関数を使用する場合、内部状態はマージされません(つまり、そのクエリは本来よりも非効率になります)。このような場合は、quantiles 関数を使用します。

構文

quantileDeterministic(level)(expr, determinator)

別名: medianDeterministic.

引数

  • level — 分位点のレベル。省略可能な引数。0 から 1 までの定数の浮動小数点数。level の値として [0.01, 0.99] の範囲を使用することを推奨します。デフォルト値: 0.5。level=0.5 の場合、この関数は median を計算します。
  • expr — 列値に対する式で、その結果が数値のデータ型Date または DateTime となるもの。
  • determinator — サンプリング結果を決定的にするために、リザーバサンプリングアルゴリズムで乱数生成器の代わりに、そのハッシュ値が使用される数値。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 │
└───────────────────────────────┘

関連項目