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

quantileExact 関数群

quantileExact

導入バージョン: v1.1

数値データ列の分位数を厳密に計算します。

厳密な値を取得するために、渡されたすべての値は配列にまとめられ、その後に部分的なソートが行われます。 そのため、この関数は O(n) のメモリを消費します。ここで n は渡された値の数です。 ただし、値の数が少ない場合には、この関数は非常に効率的です。

1つのクエリ内で異なるレベルを持つ複数の quantile* 関数を使用する場合、内部状態は結合されません(つまり、そのクエリは本来可能な場合ほど効率的には動作しません)。 このような場合は、quantiles 関数を使用してください。

構文

quantileExact(level)(expr)

別名: medianExact

パラメータ

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

引数

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

戻り値

指定されたレベルの分位数。数値データ型の場合、出力形式は入力形式と同じになります。(U)Int* または Float* または Decimal* または Date または DateTime

正確な分位数の計算

SELECT quantileExact(number) FROM numbers(10);
┌─quantileExact(number)─┐
│                     5 │
└───────────────────────┘

関連項目