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

quantileExactInclusive

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

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

この関数は、Excel の関数 PERCENTILE.INCtype R7)と等価です。

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

構文

quantileExactInclusive(level)(expr)

引数

パラメータ

  • level — 分位数のレベル。省略可能。取りうる値: [0, 1] — 両端を含む。デフォルト値: 0.5。level=0.5 の場合、この関数は中央値を計算する。Float

返される値

  • 指定されたレベルの分位数。

型:

  • 数値データ型の入力に対しては Float64
  • 入力値が Date 型の場合は Date
  • 入力値が DateTime 型の場合は DateTime

クエリ:

CREATE TABLE num AS numbers(1000);

SELECT quantileExactInclusive(0.6)(x) FROM (SELECT number AS x FROM num);

結果:

┌─quantileExactInclusive(0.6)(x)─┐
│                          599.4 │
└────────────────────────────────┘