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

quantileTimingWeighted

指定された精度で、各シーケンスメンバーの重みを考慮して分位数を計算します。

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

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

構文

エイリアス: medianTimingWeighted

引数

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

  • exprで、カラム値の上に浮動小数点数Float*-型を返します。

    • 負の値が関数に渡されると、動作は未定義です。
    • 値が30,000(ページの読み込み時間が30秒以上)の場合、30,000と見なされます。
  • weight — シーケンス要素の重さを持つカラム。重さは値の出現回数を表します。

精度

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

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

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

注記

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

戻り値

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

タイプ: Float32

注記

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

入力テーブル:

クエリ:

結果:

quantilesTimingWeighted

quantileTimingWeightedと同じですが、複数の分位レベルをパラメーターとして受け取り、それらの分位数の多くの値で満たされた配列を返します。

入力テーブル:

クエリ:

結果:

関連項目