[英]Row_Number based on two columns
我正在嘗試創建下面的行號,我嘗試了很多選項,但似乎沒有一個有效。 我會很感激幫助。
我希望行順序查看 sub_id 並為每個行執行一個序列號 1、2、3 ......然后我希望它查看磁盤,如果發生變化,go 再次回到 1。 我已經嘗試將它們連接起來並使用一個鍵,但我似乎無法讓它工作。
ID sub_id disc ROW_NUMBER
1 1 OT 1
1 1 OT 2
1 1 OT 3
1 2 DT 1
1 2 DT 2
1 3 SL 1
1 3 SL 2
1 4 PH 1
1 4 PH 2
1 4 OT 1
1 5 OT 1
1 5 PH 2
1 5 DT 1
1 6 DT 1
1 6 DT 2
1 6 DT 3
1 7 SL 1
1 7 SL 2
1 7 DT 1
1 8 SL 1
1 8 SL 2
1 8 SL 3
1 9 DT 1
1 9 DT 2
1 9 DT 3
1 10 PH 1
1 10 DT 1
1 10 DT 2
1 11 OT 1
1 11 OT 2
1 11 OT 3
1 12 OT 1
1 12 OT 2
1 12 OT 3
更新 row_number() OVER (PARTITION BY sub_id ORDER BY disc) 不起作用。 當 sub_id 變為 2 時排序出錯。此時需要恢復為 1,但它是 2。
你似乎想要:
row_number() over (partition by id, sub_id, disc order by id)
注意:您沒有指定列順序的列——甚至沒有唯一標識每一行的列。 因此,這只是使用order by id
。 您可能希望在其中包含一些其他列。
SELECT ID , sub_ID , disc , ROW_NUMBER() OVER (PARTITION BY sub_ID ORDER BY disc) from your table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.