7.5 KiB
slug | sidebar_position |
---|---|
/ja/sql-reference/aggregate-functions/reference/quantiles | 177 |
quantiles 関数
quantiles
構文: quantiles(level1, level2, ...)(x)
すべての分位関数には、対応する分位関数もあります: quantiles
, quantilesDeterministic
, quantilesTiming
, quantilesTimingWeighted
, quantilesExact
, quantilesExactWeighted
, quantileExactWeightedInterpolated
, quantileInterpolatedWeighted
, quantilesTDigest
, quantilesBFloat16
, quantilesDD
。これらの関数は、指定されたレベルのすべての分位数を一度で計算し、結果の値の配列を返します。
quantilesExactExclusive
数値データシーケンスの分位数を正確に計算します。
正確な値を取得するために、すべての渡された値を配列に結合し、その後一部をソートします。そのため、この関数は渡された値の数 n
に比例して O(n)
のメモリを消費します。ただし、値の数が少ない場合、この関数は非常に効果的です。
この関数は Excel の PERCENTILE.EXC 関数に相当し、(型 R6) に相当します。
quantileExactExclusive よりもセットレベルで効率的に動作します。
構文
quantilesExactExclusive(level1, level2, ...)(expr)
引数
パラメータ
level
— 分位数のレベル。可能な値: (0, 1) — 境界を含まない。 Float。
返される値
- 指定されたレベルの分位数の Array。
配列値の型:
例
クエリ:
CREATE TABLE num AS numbers(1000);
SELECT quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x) FROM (SELECT number AS x FROM num);
結果:
┌─quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x)─┐
│ [249.25,499.5,749.75,899.9,949.9499999999999,989.99,998.999] │
└─────────────────────────────────────────────────────────────────────┘
quantilesExactInclusive
数値データシーケンスの分位数を正確に計算します。
正確な値を取得するために、すべての渡された値を配列に結合し、その後一部をソートします。そのため、この関数は渡された値の数 n
に比例して O(n)
のメモリを消費します。ただし、値の数が少ない場合、この関数は非常に効果的です。
この関数は Excel の PERCENTILE.INC 関数に相当し、(型 R7) に相当します。
quantileExactInclusive よりもセットレベルで効率的に動作します。
構文
quantilesExactInclusive(level1, level2, ...)(expr)
引数
パラメータ
level
— 分位数のレベル。可能な値: [0, 1] — 境界を含む。 Float。
返される値
- 指定されたレベルの分位数の Array。
配列値の型:
例
クエリ:
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] │
└─────────────────────────────────────────────────────────────────────┘
quantilesGK
quantilesGK
は quantileGK
に似た動作をし、異なるレベルでの分位数を同時に計算し、配列を返します。
構文
quantilesGK(accuracy, level1, level2, ...)(expr)
返される値
- 指定されたレベルの分位数の Array。
配列値の型:
例
クエリ:
SELECT quantilesGK(1, 0.25, 0.5, 0.75)(number + 1)
FROM numbers(1000)
┌─quantilesGK(1, 0.25, 0.5, 0.75)(plus(number, 1))─┐
│ [1,1,1] │
└──────────────────────────────────────────────────┘
SELECT quantilesGK(10, 0.25, 0.5, 0.75)(number + 1)
FROM numbers(1000)
┌─quantilesGK(10, 0.25, 0.5, 0.75)(plus(number, 1))─┐
│ [156,413,659] │
└───────────────────────────────────────────────────┘
SELECT quantilesGK(100, 0.25, 0.5, 0.75)(number + 1)
FROM numbers(1000)
┌─quantilesGK(100, 0.25, 0.5, 0.75)(plus(number, 1))─┐
│ [251,498,741] │
└────────────────────────────────────────────────────┘
SELECT quantilesGK(1000, 0.25, 0.5, 0.75)(number + 1)
FROM numbers(1000)
┌─quantilesGK(1000, 0.25, 0.5, 0.75)(plus(number, 1))─┐
│ [249,499,749] │
└─────────────────────────────────────────────────────┘