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

quantileTiming

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

結果は決定論的であり(クエリ処理の順序に依存しません)、この関数は、ウェブページの読み込み時間やバックエンドの応答時間のような分布を記述するシーケンスの処理に最適化されています。

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

構文

エイリアス: 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値のソートについての注意事項を参照してください。

入力テーブル:

クエリ:

結果:

参照