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

quantilesExactInclusive

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

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

この関数は、Excel の PERCENTILE.INC 関数(type R7)と同等です。

quantileExactInclusive に比べて、多数のレベルを指定した場合により効率的に動作します。

構文

quantilesExactInclusive(level1, level2, ...)(expr)

引数

パラメータ

  • level — 分位数レベル。取りうる値は [0, 1] の範囲(両端を含む)。Float

戻り値

  • 指定されたレベルの分位数を要素とする Array

配列要素の型:

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

クエリ:

CREATE TABLE num AS numbers(1000);

SELECT quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x) FROM (SELECT number AS x FROM num);

結果:

┌─quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x)─┐
│ [249.75,499.5,749.25,899.1,949.05,989.01,998.001]                   │
└─────────────────────────────────────────────────────────────────────┘