[SQL ] ROW_NUMBER()的用法
想請問一下
我有在網頁上看到
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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):