共用方式為


approx_percentile 聚合函數

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

傳回群組中 expr 的百分位數近似值

語法

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

您也可以使用 子句,將此函式叫用OVER視窗函式。

引數

  • expr:數值表達式。
  • percentile:介於 0 到 1 之間的數值常值或數值常值陣列,每一個介於 0 到 1 之間。
  • accuracyINTEGER:常值大於 0。 如果省略精確度,則會設定為 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