次の方法で共有


percentile_approx 集計関数

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

グループ内の expr の近似パーセンタイルを返します。 この関数は、approx_percentile 集計関数のシノニムです。

構文

percentile_approx ( [ALL | DISTINCT ] expr, percentile [, accuracy] ) [FILTER ( WHERE cond ) ]

この関数は、OVER 句を使用して ウィンドウ 関数として呼び出すこともできます。

引数

  • expr: 数値式。
  • percentile: 0 から 1 までの数値リテラル、または 0 から 1 までの数値のリテラル配列。
  • accuracy: 0 より大きい整数リテラル。 accuracy を省略すると、10000 に設定されます。
  • cond: 集計に使用される行をフィルター処理するブール式 (省略可能)。

戻り値

この集計関数は、expr 値の percentile 以下がその値以下になるように、(最小から最大の順に並べ替えられた) 順序付きグループ内の最小値である式を返します。 percentile が配列の場合、percentile_approx は expr の近似パーセンタイル配列が指定されたパーセンタイルで返されます。

accuracy パラメーターを使用すると、メモリを使って近似精度が制御されます。 accuracy の値が大きいほど、精度が向上します。1.0/accuracy は近似の相対誤差です。

DISTINCT が指定されている場合、この関数は expr 値の一意のセットでのみ動作します。

> SELECT percentile_approx(col, array(0.5, 0.4, 0.1), 100)
    FROM VALUES (0), (1), (2), (10) AS tab(col);
 [1,1,0]

> SELECT percentile_approx(col, 0.5, 100)
    FROM VALUES (0), (6), (7), (9), (10), (10), (10) AS tab(col);
 9

> SELECT percentile_approx(DISTINCT col, 0.5, 100)
    FROM VALUES (0), (6), (7), (9), (10), (10), (10) AS tab(col);
 7