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;


  • 捕获.PNG (5.04 KB, 下载次数: 4)


    捕获.PNG

有ORDER BY,不写后面的开窗语句(rang/rows between ... and ...),默认为分组中的第一行到当前行。
没有ORDER BY,不写后面的开窗语句(rang/rows between ... and ...),默认为分组中的所有行。



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

你可能感兴趣的:(下载次数)