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 的 INTEGER 常值。 如果省略精確度,則會設定為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