適用於:
Databricks SQL
Databricks Runtime
傳回群組中 expr 的百分位數近似值 此函數是聚集函數的approx_percentile同義詞。
語法
percentile_approx ( [ALL | DISTINCT ] expr, percentile [, accuracy] ) [FILTER ( WHERE cond ) ]
引數
-
expr:數值表達式。 -
percentile:介於 0 到 1 之間的數值常值或數值常值陣列,每一個介於 0 到 1 之間。 -
accuracy:大於 0 的整數常值。 如果省略精確度,則會設定為10000。 -
cond:選擇性布爾表示式,篩選用於匯總的數據列。
退貨
聚合函數會傳回已排序群組中最小值的表達式(從小到大排序),以此確保不超過 percentile 個值在 expr 個值中小於或等於該數值。
如果 percentile 是陣列percentile_approx,則傳回指定百分位數的近似百分位數數位 expr 。
參數 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