Share via


dense_rank 排名視窗函式

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

傳回與分割區中所有值相比較的值排名。

語法

dense_rank()

參數

此函式不會接受任何引數。

返回

整數。

視窗函式的 OVER 子句必須包含 ORDER BY 子句。 不同于函式 順位排名視窗函式,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