我試圖通過包裹在我頭上的功能來獲得結束和分區。這是一個我只是不明白的例子。試圖瞭解over()和分區
這裏是我擁有的數據:
SALESORDERID ORDERDATE
43894 08/01/2001
43664 07/01/2001
43911 08/01/2001
43867 08/01/2001
43877 08/01/2001
44285 10/01/2001
44501 11/01/2001
43866 08/01/2001
43895 08/01/2001
43860 08/01/2001
當我運行此查詢:
select Row_Number() over(partition by orderdate order by orderdate asc)
as Rownumber, salesorderid, orderdate
from test2
order by rownumber
下面是結果我得到:
ROWNUMBER SALESORDERID ORDERDATE
1 43664 07/01/2001
1 43911 08/01/2001
1 44109 09/01/2001
1 44483 11/01/2001
1 44285 10/01/2001
2 43867 08/01/2001
2 44501 11/01/2001
3 43895 08/01/2001
4 43894 08/01/2001
5 43877 08/01/2001
有人能解釋一下這個查詢對我來說。我對SQL不是陌生的,但是我一直在努力尋找窗口,並且無法讓我的頭部纏繞在這裏。
也可以嘗試SELECT COUNT(*)OVER(分區....)中的行的順序可能是更清楚你它在做什麼。 – 2012-02-16 16:42:32
謝謝你的回答。分區子句非常強大 – Luke101 2012-02-17 16:13:07
非常感謝! – 2014-08-27 17:50:48