quantileExactHigh
quantileExact と同様に、数値データ列の正確な分位数を計算します。
渡されたすべての値は配列にまとめられ、その後完全にソートされて正確な値が得られます。ソートアルゴリズムの計算量は O(N·log(N)) であり、ここで N = std::distance(first, last) 回の比較です。
戻り値は分位数レベルと集合内の要素数に依存します。例えばレベルが 0.5 の場合、要素数が偶数のときは高い方の中央値を、要素数が奇数のときは中央の要素(中央値)を返します。中央値は、Python で使用されている median_high 実装と同様の方法で計算されます。その他すべてのレベルでは、level * size_of_array の値に対応するインデックスの要素が返されます。
この実装は、現在の quantileExact 実装とまったく同じように動作します。
1 つのクエリ内で異なるレベルを指定した複数の quantile* 関数を使用する場合、内部状態は結合されません(つまり、そのクエリは本来可能な効率よりも低く動作します)。この場合は、quantiles 関数を使用してください。
構文
別名: medianExactHigh.
引数
level— 分位数のレベル。省略可能なパラメータ。0 から 1 までの定数の浮動小数点数。levelの値として[0.01, 0.99]の範囲を使用することを推奨します。デフォルト値: 0.5。level=0.5の場合、この関数は中央値を計算します。expr— 数値データ型、Date または DateTime を結果とする、カラム値に対する式。
戻り値
- 指定したレベルの分位数。
型:
例
クエリ:
結果: