[英]Using ROW_NUMBER() to Partition DataSets
我對在 SQL 中使用ROW_NUMBER()
有點困惑。
有一個當前看起來如下的數據集:
Number ID
1 1
2 6
3 11
我在下面寫了一個查詢:
SELECT rownum = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Number), Number
FROM #SEQNUMBERSTEMP
這給出了輸出:
rownum Number
1 1
1 2
1 3
1 4
1 5
1 6
1 1
1 2
1 3
1 4
1 1
但我想實現以下目標:
rownum Number
1 1
1 2
1 3
1 4
1 5
2 1 # Note 2 should start at position 6
2 2
2 3
2 4
2 5
3 1 # Note 3 should start at position 11
3 2
3 3
您可能想使用DENSE_RANK()
而不使用PARTITION BY
子句,例如:
SELECT rownum = DENSE_RANK() OVER (ORDER BY Number), Number
FROM #SEQNUMBERSTEMP
使用排名()
SELECT
rownum = rank() OVER (ORDER BY Number),
Number
FROM #SEQNUMBERSTEMP
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.