Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesExactExclusive

quantilesExactExclusive

導入バージョン: v20.1.0

exclusive 法を使用して、数値データの数列に対する複数の分位点を、異なるレベルで同時に正確に計算します。

この関数は quantileExactExclusive と同等ですが、複数の分位点レベルを 1 回の走査で計算できるため、個別に分位点関数を呼び出すよりも効率的です。

この関数は、R-6 method で説明されているとおり、分位点の計算に exclusive 法を使用します。 これは Excel の PERCENTILE.EXC 関数と同等です。

正確な値を得るため、渡されたすべての値は 1 つの配列にまとめられ、その後部分的にソートされます。 ソートアルゴリズムの計算量は O(N·log(N)) で、ここで N = std::distance(first, last) です。

構文

quantilesExactExclusive(level1, level2, ...)(expr)

パラメータ

  • level — 分位点のレベル。0 から 1 まで (両端を含まない) の定数の浮動小数点数です。level の値には (0.01, 0.99) の範囲を使用することを推奨します。Float*

引数

  • expr — カラムの値に対する式です。結果の data types は、数値型、Date、または DateTime です。(U)Int* または Float* または Date または DateTime

戻り値

指定したレベルの分位点を、指定した順序どおりに格納した Array です。Array(Float64)

複数の厳密な exclusive 分位点を計算する

CREATE TABLE num AS numbers(1000);
SELECT quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number) FROM num;
┌─quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number)─┐
│ [249.25,499.5,749.75,899.9,949.9499999999999,989.99,998.999]             │
└──────────────────────────────────────────────────────────────────────────┘
Navigation