2017-06-17 29 views
-2

我有如下表數據:如何與重複的行的順序查詢數據

ID SAL   
_______________ 
    1 1500   
    1 1500   
    1 2000   
    1 1500   
    2 2500   
    2 2500   
    3 1500  

我想查詢相同的數據新的欄位,讓我的每重複行的序列(基於id和sal列)。

我想要的查詢結果應該是這樣的:

ID SAL  ROW_SEQ 
_______________________ 
    1 1500  1 
    1 1500  2 
    1 2000  1 
    1 1500  3 
    2 2500  1 
    2 2500  2 
    3 1500  1 

任何人有任何想法請..

+1

ROW_NUMBER()以上(分區編號查詢,薩爾順序按SAL) –

回答

1

您想在這裏使用ROW_NUMBER()函數!

SELECT ID, SAL, ROW_NUMBER() OVER (PARTITION BY ID, SAL, ORDER BY SAL) AS ROW_SEQ 
FROM MyTable 
ORDER BY ID, SAL 

通過對您的兩個所需字段進行分區,它將以順序方式給出每個組內的排名。

它的文檔可以在這裏找到: https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions137.htm

+0

非常感謝你對你有用的幫助,但row_seq列返回的結果導致1爲所有行。 –

+0

糟糕...而是用'ROW_NUMBER()'替換'RANK()'。答案已更新。 – SandPiper

+0

非常感謝你。 –