oracle partition by 与 partition by ... order by 分组

摘要:
Partitionby和Partitionby orderby的不同用法,仅使用,例如:表t A B C 1 43 2013-4-17 2 33 2013-4-18 3

partition by

partition by ... order by

用法区别,刚使用到,迷迷糊糊的

如:表t

  A                B                C                

 1                 43              2013-4-17

 2                 33              2013-4-18

 3                 10              2013-4-17

使用

partition by:

在使用rank()时,需要使用order by

Select  rank() over(partition by C  order by B desc) as rank,C, B,A  from t

这样结果是:

rank        C                 B               A                           

1          2013-4-17     43               1

2          2013-4-17     10               3

1          2013-4-18     33               2

对它进行了分级显示,同一日期的则根据order by 的排序方法以一个等级往上升

现在如果我现在要查询每一天当中最B列值最大的,那么:

Select   * from

(

Select  rank() over(partition by C  order by B desc) as rank,

C, B,A  from t

)  table

where table.rank = 1

那么这样子就查询出每一天最高的一条记录

rank        C                 B               A                          

1          2013-4-17     43               1

1          2013-4-18     33               2

现在使用sum()或count()这些函数进行使用

如:查询每一天的B列的总和

select sum(B) over(partition by C order by C ASC) as sum,

C, B,A  from t

如果这里还加上order by ,则表示累计这个时间以上的数据,那么这里就会出现

sum           C              B               A

1          2013-4-17     43               1

53          2013-4-17    10              3

33          2013-4-18     33               2

如果不加order by ,即:

select sum(B) over(partition by C) as sum,

C, B  from t

则不会累计之前的,只要显示最后的数据,但是多条的;

sum           C              B               A

53         2013-4-17     43              1

53          2013-4-17    10              3

33          2013-4-18     33               2

这样子,如果求每天总和,即

select sum,C from

(

select sum(B) over(partition by C) as sum,

C, B  from t

) tt

group by sum, B,C

这样就可以得到

sum           C            

53         2013-4-17   

33          2013-4-18

免责声明:文章转载自《oracle partition by 与 partition by ... order by 分组》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇log4j:ERROR setFile(null,true) call failed.错误解决软件评测(腾讯即时通信IM)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章