Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesExactInclusive

quantilesExactInclusive

導入バージョン: v20.1.0

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

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

この関数は、R-7 method で説明されている包括法を使用して分位点を計算します。 これは Excel の PERCENTILE.INC 関数と同等です。

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

構文

quantilesExactInclusive(level1, level2, ...)(expr)

パラメータ

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

引数

  • expr — カラム値に対する式。結果は数値データ型、Date、または DateTime である必要があります。(U)Int* または Float* または Date または DateTime

戻り値

指定したレベルの分位点を、レベルの指定順と同じ順序で格納した Array。Array(Float64)

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

CREATE TABLE num AS numbers(1000);
SELECT quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number) FROM num;
┌─quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number)─┐
│ [249.75,499.5,749.25,899.1,949.05,989.01,998.001]                        │
└──────────────────────────────────────────────────────────────────────────┘
Navigation