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

quantile

quantile

導入バージョン: v1.1

数値データ列の近似的な quantile を計算します。

この関数は、最大 8192 のリザーバサイズとサンプリング用の乱数生成器を用いた リザーバサンプリング を適用します。 結果は非決定的です。 厳密な quantile を取得するには、quantileExact 関数を使用してください。

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

空の数値シーケンスに対しては、quantile は NaN を返しますが、quantile* の各バリアントは、バリアントに応じて NaN かそのシーケンスタイプのデフォルト値のいずれかを返すことに注意してください。

構文

quantile(level)(expr)

別名: median

パラメータ

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

引数

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

戻り値

指定したレベルの近似分位数。Float64 または Date または DateTime

quantile の計算

CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);

SELECT quantile(val) FROM t;
┌─quantile(val)─┐
│           1.5 │
└───────────────┘

関連項目