oracle查询结果获取最后页,窗口函数的over子句中,使用了order by,为什么最后的查询结果也是排了序的?...

新建了一个temp表,值如下:

SQL> select *

2  from temp

3  ;

NAME                      VALUE

-------------------- ----------

pumpkin                       3

apple                         2

pear                          2

cheese                        5

再执行下列sql语句:

SQL> select name, value,

2  min(value) over (order by value) min1,

3  max(value) over (order by value) max1,

4  min(value) over (order by value range between unbounded preceding

5  and unbounded following) min2,

6  max(value) over (order by value range between unbounded preceding

7  and unbounded following) max2,

8  min(value) over (order by value range between current row

9  and current row) min3,

10  max(value) over (order by value range between current row

11  and current row) max3,

12  max(value) over (order by value rows between 2 preceding

13  and 2 following)max4

14  from temp

15  ;

NAME                      VALUE       MIN1       MAX1       MIN2       MAX2       MIN3       MAX3       MAX4

-------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------

apple                         2          2          2          2          5          2          2          3

pear                          2          2          2          2          5          2          2          5

pumpkin                       3          2          3          2          5          3          3          5

cheese                        5          2          5          2          5          5          5          5

发现执行完第二个sql后,value列的值是按升序排列的,请问这是为什么?

我之前以为行排列的顺序还是和第一个sql结果的顺序是一样的..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值