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

分位点

導入バージョン: v1.1.0 数値データ列に対して、異なるレベルの複数の近似分位点を同時に計算します。 この関数では、最大 8192 のリザーバサイズを持つリザーバサンプリングと、サンプリング用の乱数生成器を使用します。 結果は非決定論的です。 複数の分位点の値が必要な場合、quantiles を使用する方が、個別の quantile 関数を複数回呼び出すよりも効率的です。これは、すべての分位点をデータ全体に対する 1 回の走査で計算できるためです。 構文
quantiles(level1, level2, ...)(expr)
Parameters
  • level — 分位点のレベルです。0 から 1 までの定数の浮動小数点数を 1 つ以上指定します。level の値には [0.01, 0.99] の範囲を使用することを推奨します。Float*
Arguments
  • expr — カラムの値に対する式で、結果は数値型、Date、または DateTime である必要があります。(U)Int* または Float* または Decimal* または Date または DateTime
戻り値 指定したレベルの近似分位点を、指定したレベルと同じ順序で格納した Array を返します。Array(Float64) または Array(Date) または Array(DateTime) Examples 複数の分位点を効率的に計算する
Query
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);

SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;
Response
┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [3, 5.5, 8, 9.5]                     │
└──────────────────────────────────────┘
最終更新日 2026年6月10日