Share via


percent_rank 排名視窗函式

適用于:核取標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

計算資料分割內值的百分比排名。

語法

percent_rank()

參數

函式不接受任何引數

返回

DOUBLE。

函式定義為視窗內的順位減一除以視窗內的資料列數目減 1。 如果視窗中只有一個資料列,則排名為 0。

在運算式中,語意可以表示為:

nvl((rank() OVER(PARTITION BY p ORDER BY o) - 1) / nullif(count(1) OVER(PARTITION BY p) -1), 0), 0)

此函式類似,但與 分析視窗函式cume_dist不同。

您必須在視窗規格中包含 ORDER BY 子句

例子

> SELECT a, b, percent_rank(b) OVER (PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A1', 3), ('A1', 6), ('A1', 7), ('A1', 7), ('A2', 3), ('A1', 1) tab(a, b)
 A1 1  0.0
 A1 1  0.0
 A1 2  0.3333333333333333
 A1 3  0.5
 A1 6  0.6666666666666666
 A1 7  0.8333333333333334
 A1 7  0.8333333333333334
 A2 3  0.0