メインコンテンツへスキップ
メインコンテンツへスキップ

quantileExactLow

quantileExactLow

導入バージョン: v20.8

quantileExact と同様に、数値データ列の正確な分位数を計算します。

正確な値を取得するために、渡されたすべての値は配列にまとめられ、その後完全にソートされます。 ソートアルゴリズムの計算量は O(N·log(N)) であり、ここで N = std::distance(first, last) は比較回数を表します。

戻り値は分位レベルと選択された要素数に依存します。例えばレベルが 0.5 の場合、要素数が偶数なら下側の中央値を、奇数なら中央の中央値を返します。 中央値は、Python で使用されている median_low 実装と同様の方法で計算されます。

その他のレベルについては、level * size_of_array の値に対応するインデックスの要素が返されます。

quantile* 関数を同じクエリ内で異なるレベルで複数使用する場合、内部状態はまとめて処理されません(そのため、クエリの効率は本来よりも低くなります)。このような場合は、quantiles 関数を使用してください。

構文

quantileExactLow(level)(expr)

別名: medianExactLow

パラメーター

  • level — 省略可能。分位数のレベル。0 から 1 までの定数の浮動小数点数。level の値には [0.01, 0.99] の範囲を使用することを推奨します。デフォルト値: 0.5。level=0.5 の場合、この関数は中央値を計算します。Float*

引数

  • expr — カラム値に対する式で、結果として数値データ型、Date または DateTime を返します。(U)Int* または Float* または Decimal* または Date または DateTime

返される値

指定されたレベルの分位数を返します。Float64 または Date または DateTime

正確な下側分位数の計算

SELECT quantileExactLow(number) FROM numbers(10);
┌─quantileExactLow(number)─┐
│                        4 │
└──────────────────────────┘

特定の分位レベルの算出

SELECT quantileExactLow(0.1)(number) FROM numbers(10);
┌─quantileExactLow(0.1)(number)─┐
│                             1 │
└───────────────────────────────┘