次の方法で共有


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 より大きい整数リテラル。 accuracy を省略すると、10000 に設定されます。
  • cond: 集計に使用される行をフィルター処理するブール式 (省略可能)。

戻り値

この集計関数は、expr 値の percentile 以下がその値以下になるように、(最小から最大の順に並べ替えられた) 順序付きグループ内の最小値である式を返します。

percentile が配列の場合、approx_percentileexpr の近似パーセンタイル配列を 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