quantilesDeterministic
導入バージョン: v1.1.0
決定論的リザーバーサンプリングを使用して、異なるレベルにおける数値データ列の近似分位点を複数同時に計算します。
この関数は quantileDeterministic と同等ですが、1回の処理で複数の分位点レベルを計算できるため、個別に分位点関数を呼び出すよりも効率的です。
構文
quantilesDeterministic(level1, level2, ...)(expr, determinator)パラメーター
level— 分位点のレベル。0 から 1 までの定数の浮動小数点数を 1 つ以上指定します。levelの値には[0.01, 0.99]の範囲を使用することを推奨します。Float*
引数
expr— カラム値に対する式。結果の型は数値データ型、Date、またはDateTimeです。(U)Int*またはInt128またはUInt128またはInt256またはUInt256またはFloat*またはDateまたはDateTimedeterminator— リザーバーサンプリングアルゴリズムで乱数生成器の代わりに hash が使われる数値で、サンプリング結果を決定論的にします。UInt*
戻り値
指定したレベルに対応する近似分位点の Array。順序は、指定したレベルの順序と同じです。Array(Float64) または Array(Date) または Array(DateTime)
例
複数の決定論的な分位点を計算する
SELECT quantilesDeterministic(0.25, 0.5, 0.75)(number, number) FROM numbers(10)┌─quantilesDeterministic(0.25, 0.5, 0.75)(number, number)─┐
│ [2.25,4.5,6.75] │
└─────────────────────────────────────────────────────────┘