approx_percentile
集計関数
適用対象: Databricks SQL Databricks Runtime
グループ内の expr
の近似パーセンタイルを返します。
構文
approx_percentile ( [ALL | DISTINCT] expr, percentile [, accuracy] ) [ FILTER ( WHERE cond ) ]
この関数は、OVER
句を使用して ウィンドウ 関数として呼び出すこともできます。
引数
expr
: 数値式。percentile
: 0 から 1 までの数値リテラル、または 0 から 1 までの数値のリテラル配列。accuracy
: 0 より大きいINTEGER
リテラル。 accuracy を省略すると、10000 に設定されます。cond
: 集計に使用される行をフィルター処理するブール式 (省略可能)。
戻り値
この集計関数は、expr
値の percentile
以下がその値以下になるように、(最小から最大の順に並べ替えられた) 順序付きグループ内の最小値である式を返します。
percentile
が配列の場合、approx_percentile
は expr
の近似パーセンタイル配列を percentile
で返します。
accuracy
パラメーターは、メモリを犠牲にして近似精度を制御します。
accuracy の値が大きいほど精度が向上します。1.0/accuracy
は近似の相対誤差です。
この関数は、percentile_approx 集計関数のシノニムです。
DISTINCT
が指定されている場合、この関数は expr
値の一意のセットでのみ動作します。
例
> SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col);
[1,1,0]
> SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
6
> SELECT approx_percentile(DISTINCT col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
7