作者s66449 (老实样)
看板Database
标题[SQL ] ROW_NUMBER()的用法
时间Wed Jul 25 10:40:39 2012
想请问一下
我有在网页上看到
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