列值與密集排名 vs 排名與行數
在這裡你可以找到功能。
使用上一個示例中建立的表 wf_example,執行:
select i
, dense_rank() over (order by i)
, row_number() over ()
, rank() over (order by i)
from wf_example
結果是:
i | dense_rank | row_number | rank
---+------------+------------+------
1 | 1 | 1 | 1
1 | 1 | 2 | 1
1 | 1 | 3 | 1
2 | 2 | 4 | 4
2 | 2 | 5 | 4
3 | 3 | 6 | 6
4 | 4 | 7 | 7
5 | 5 | 8 | 8
-
DENSE_RANK 訂單 VALUES 的我通過外觀視窗。
i=1
出現,所以第一行有 dense_rank,下一個和第三行 i 值沒有變化,所以它是dense_rank
顯示 1 - FIRST 值沒有改變。第四行i=2
,它是我遇到的第二個值,所以dense_rank
顯示 2,然後是下一行。然後它在第 6 行遇到值i=3
,所以它顯示 3.對於 i 的其餘兩個值相同。所以dense_rank
的最後一個值是 i 的不同值的數量。 -
ROW_NUMBER 訂單 ROWS 因為它們列出。
-
的排名不要與
dense_rank
此功能令混淆行號的我值。所以它開始與三個相同,但是具有下一個值 4,這意味著在第 4 行遇到了i=2
(新值)。在第 6 行遇到了相同的i=3
。等等。