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 的 INTEGER 常值。 如果省略精確度,則會設定為 10000。
  • cond:選擇性布林運算式,篩選用於匯總的資料列。

返回

彙總函式會傳回運算式,這是已排序群組中最小值的運算式, (從最小到最大) 排序,因此值不超過 percentileexpr 值或等於該值。

如果 percentile 是陣列, approx_percentile 則傳回 的 percentile 近似百分位數陣列 expr 。 參數 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