Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesExact

quantilesExact

導入バージョン: v1.1.0

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

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

正確な値を得るため、渡されたすべての値は配列にまとめられ、その後で部分的にソートされます。したがって、この関数は O(n) のメモリを消費します。ここで n は渡された値の数です。

構文

quantilesExact(level1, level2, ...)(expr)

パラメータ

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

引数

戻り値

指定したレベルの分位点を、レベルの指定順と同じ順序で格納した Array。数値データ型では、出力フォーマットは入力フォーマットと同じです。Array((U)Int*) or Array(Int128) or Array(UInt128) or Array(Int256) or Array(UInt256) or Array(Float*) or Array(Decimal*) or Array(Date) or Array(DateTime) or Array(DateTime64)

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

SELECT quantilesExact(0.25, 0.5, 0.75)(number) FROM numbers(10)
┌─quantilesExact(0.25, 0.5, 0.75)(number)─┐
│ [2,5,7]                                 │
└─────────────────────────────────────────┘
Navigation