MAX() over(PARTITION BY ..ORDER BY ..)

本帖最後由 macrowho 於 2014-6-24 14:56 編輯

T表數據如下:
ID        NAME DV
1        aaa          1
2        aaa          0
3        aaa          0
5        aaa          5
7        aaa          7
11        aaa          11
12        aaa          10


SELECT ID,
        NAME,
        DV,
        MAX(DV) OVER(PARTITION BY NAME ORDER BY ID RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) R_1,
        MAX(DV) OVER(PARTITION BY NAME ORDER BY ID) R,
        MAX(DV) OVER(PARTITION BY NAME ) R3
   FROM T;

有ORDER BY,不寫後面的開窗語句(rang/rows between ... and ...),默認爲分組中的第一行到當前行。
沒有ORDER BY,不寫後面的開窗語句(rang/rows between ... and ...),默認爲分組中的所有行。



原帖:http://www.itpub.net/thread-1873977-1-1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章