quantileTimingWeighted
指定した精度で、数値データのシーケンスに対して、各要素の重みを考慮した分位数を計算します。
結果は決定論的であり(クエリの処理順序には依存しません)、Web ページの読み込み時間やバックエンドの応答時間のような分布を表すシーケンスの処理に最適化されています。
1 つのクエリ内で、異なるレベルを指定した複数の quantile* 関数を使用する場合、内部状態は結合されません(つまり、そのクエリは本来より非効率に動作します)。このような場合は、quantiles 関数を使用してください。
構文
Alias: medianTimingWeighted.
引数
-
level— 分位数のレベル。省略可能なパラメータ。0 から 1 の間の定数の浮動小数点数。levelの値は[0.01, 0.99]の範囲で使用することを推奨します。デフォルト値: 0.5。level=0.5のとき、この関数は中央値を計算します。 -
expr— 列の値に対する式で、Float* 型の数値を返します。- 負の値が関数に渡された場合、その動作は未定義です。
- 値が 30,000(30 秒を超えるページ読み込み時間)より大きい場合、30,000 であるとみなされます。
-
weight— シーケンスの要素の重みを格納する列。重みは値の出現回数です。
精度
次の場合、計算は正確です:
- 値の総数が 5670 を超えない場合。
- 値の総数が 5670 を超える場合でも、ページ読み込み時間が 1024 ms 未満の場合。
それ以外の場合、計算結果は 16 ms の倍数のうち最も近い値に丸められます。
:::note
ページ読み込み時間の分位数を計算する場合、この関数は quantile よりも効率的かつ高精度です。
:::
戻り値
- 指定したレベルの分位数。
型: Float32。
:::note
関数に値が一つも渡されない場合(quantileTimingIf を使用する場合)、NaN が返されます。これは、このようなケースを結果がゼロになるケースと区別することを目的としています。NaN 値のソートに関する注意点については、ORDER BY 句を参照してください。
:::
例
入力テーブル:
クエリ:
結果:
quantilesTimingWeighted
quantileTimingWeighted と同様ですが、複数の分位レベルをパラメータとして受け取り、それらの分位数に対応する値を要素とする Array を返します。
例
入力テーブル:
クエリ:
結果:
関連項目