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

quantileTiming

決定された精度で、数値データシーケンスの分位数を計算します。

結果は決定的であり(クエリ処理順序に依存しません)、Webページの読み込み時間やバックエンドの応答時間など、分布を示すシーケンスでの作業に最適化されています。

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

構文

quantileTiming(level)(expr)

エイリアス: medianTiming.

引数

  • level — 分位数のレベル。オプションのパラメーターです。0から1の間の定数浮動小数点数。level の値は [0.01, 0.99] の範囲で使用することを推奨します。デフォルト値: 0.5。level=0.5 では、この関数は中央値を計算します。

  • expr表現で、カラムの値に対してFloat*-型の数値を返します。

    • 負の値が関数に渡された場合、その動作は未定義です。
    • 値が30,000(30秒以上のページ読み込み時間)を超える場合、30,000であると見なされます。

精度

計算は以下の場合に正確です:

  • 値の合計数が5670を超えない。
  • 値の合計数が5670を超えますが、ページの読み込み時間が1024ms未満です。

それ以外の場合、計算結果は16msの最寄りの倍数に丸められます。

注記

ページ読み込み時間の分位数を計算するために、この関数はquantileよりも効果的で正確です。

返される値

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

タイプ: Float32.

注記

関数に値が渡されなかった場合(quantileTimingIfを使用する場合)、NaNが返されます。これは、これらのケースをゼロになるケースと区別するためのものです。ORDER BY 句でのNaN値のソートに関する注意を参照してください。

入力テーブル:

┌─response_time─┐
│            72 │
│           112 │
│           126 │
│           145 │
│           104 │
│           242 │
│           313 │
│           168 │
│           108 │
└───────────────┘

クエリ:

SELECT quantileTiming(response_time) FROM t

結果:

┌─quantileTiming(response_time)─┐
│                           126 │
└───────────────────────────────┘

関連項目