共用方式為


dense_rank 排名視窗函式

適用於:已勾選是Databricks SQL 已勾選是Databricks Runtime

傳回某一值在該分割區所有值中的排名。

語法

dense_rank()

引數

這個函數沒有引數。

退貨

整數。

window 函式的 OVER 子句必須包含 ORDER BY 子句。 與函式 rank 排序視窗函數 不同,dense_rank 不會在排名序列中產生空檔。 與row_number 窗口函數排名不同,dense_rank 不會打破平手。 如果順序不是唯一的,重複項目會共用相同的相對日後位置。

範例

> 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