2013-10-11 47 views
-1

我有一個名爲「ID」獨特性和反覆的重複行的行號表中的

ID列有8行與值列的表100,100,100,200,200,300,300,300

我想創建一個名爲新列「 Row_ID',它應該在ID列中查找併爲找到重複ID的每一行提供唯一的行號,並在找到不同的值時重新啓動計數器。

實施例,對於ID列的上述值,行柱應該像

1,2,3,1,2,1,2,3 
+1

哪個數據庫是什麼? – Lokesh

+0

這是一個必須假設的結果應該按ID排序,對不對? –

+0

1這是針對MSSQL的。 2通過ID排序是正確的 – user2869233

回答

0

對於Oracle數據庫

SELECT ROW_NUMBER() 
     OVER (PARTITION BY ID ORDER BY ID) AS "ROW_ID" 
FROM (
    SELECT 100 ID FROM dual 
    UNION ALL 
    SELECT 100 ID FROM dual 
    UNION ALL 
    SELECT 100 ID FROM dual 
    UNION ALL 
    SELECT 200 ID FROM dual 
    UNION ALL 
    SELECT 200 ID FROM dual 
    UNION ALL 
    SELECT 300 ID FROM dual 
    UNION ALL 
    SELECT 300 ID FROM dual 
    UNION ALL 
    SELECT 300 ID FROM dual 
) 
+0

這使得「OVER(通過ID作爲ID分區)」作爲「ROW_ID」「 – user2869233