共用方式為


percentile_approx 聚合函數

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

傳回群組中 expr 的百分位數近似值 此函式與approx_percentile聚合函數義。

語法

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

您也可以使用 OVER 子句,將此函式叫用為 window 函式

引數

  • expr:數值表達式。
  • percentile:介於 0 到 1 之間的數字常量或每個介於 0 到 1 之間的數字 values常量陣列。
  • accuracy:大於 0 的 INTEGER 常值。 如果省略精確度,則會是從 set 到 10000
  • cond:選擇性布爾表示式,篩選用於匯總的數據列。

傳回

聚合函數會傳回表達式,此表達式是已排序群組中最小的值(從最小到最大排序),因此 exprvalues 不超過 percentile 小於值或等於該值。 如果 percentile 是陣列percentile_approx,則傳回指定百分位數的近似百分位數數位 expr

參數 accuracy 會控制記憶體成本的近似精確度。 精確度較高的值會產生更好的精確度, 1.0/accuracy 是近似值的相對誤差。

如果指定 DISTINCT,則函式只會在 exprvalues的唯一 set 上運作。

範例

> 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