[SQL ] ROW_NUMBER()的用法

看板Database作者 (老實樣)時間13年前 (2012/07/25 10:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
想請問一下 我有在網頁上看到 http://hi.baidu.com/s__wind/item/a20107fa4eb6631ca6298858 -- 使用PARTITION BY 函數後 SELECT *,ROW_NUMBER() OVER(PARTITION BY A ORDER BY A DESC) NUM FROM TESTDB A B NUM ------------- A1 B1 1 A1 B2 2 A1 B3 3 A2 B4 1 A2 B5 2 A2 B6 3 A3 B7 1 A3 B3 2 A3 B4 3 可以看到結果中多出一列NUM 這個NUM就是說明了相同行的個數,比如A1有3個,他就給每 個A1標上是第幾個。 -- 僅僅使用ROW_NUMBER() OVER的結果 SELECT *,ROW_NUMBER() OVER(ORDER BY A DESC)NUM FROM TESTDB A B NUM ------------------------ A3 B7 1 A3 B3 2 A3 B4 3 A2 B4 4 A2 B5 5 A2 B6 6 A1 B1 7 A1 B2 8 A1 B3 9 可以看到它只是單純標出了行號。 1.想請問這兩個範例都是ORDER BY A DESC 為什麼第一個範例是從A1排到A3 而第二個範例是從A3排到A1?? 2.第二個範例少了PARTITION BY A 那麼當重複出現值的時候 又是怎麼給1~9值?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.249.182.19
文章代碼(AID): #1G3rogCw (Database)
文章代碼(AID): #1G3rogCw (Database)