共用方式為


rank 排名 window 函式

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

傳回某個值在 partition中所有 values 之間的排名。

語法

rank()

引數

這個函數沒有引數。

傳回

INTEGER

函式的 子句必須包含 子句。

與函式 dense_rank不同,rank 會產生排名順序中的間距。 不同於 row_number,排名不會中斷系結。

如果順序不是唯一的,重複項目會共用相同的相對先前位置。

範例

> SELECT a,
         b,
         dense_rank() OVER(PARTITION BY a ORDER BY b),
         rank() OVER(PARTITION BY a ORDER BY b),
         row_number() OVER(PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
 A1 1   1   1   1
 A1 1   1   1   2
 A1 2   2   3   3
 A2 3   1   1   1