簡體   English   中英

Row_Number 基於兩列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM