Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileExactLow

quantileExactLow

導入バージョン: v20.8.0

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

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

戻り値は分位点の level と、選択対象の要素数に依存します。つまり、level が 0.5 の場合、要素数が偶数なら小さい方の中央値を返し、要素数が奇数なら中央の中央値を返します。 中央値は、Python で使用されている median_low の実装と同様に計算されます。

それ以外の level では、level * size_of_array の値に対応するインデックスの要素が返されます。

1 つのクエリで level の異なる複数の quantile* 関数を使用すると、内部状態は結合されません (つまり、クエリの実行効率が本来より低下します) 。 この場合は、quantiles 関数を使用してください。

構文

quantileExactLow(level)(expr)

別名: medianExactLow

パラメータ

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

引数

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

戻り値

指定したレベルの分位点を返します。数値型の場合、出力フォーマットは入力フォーマットと一致します。(U)Int* または Float* または Decimal* または Date または DateTime または DateTime64

正確な下側分位点の計算

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

特定の分位点を計算する

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