Oracle 分组排序函数

Oracle 分组排序函数

1.row_number() over(partition by col1 order by col2) 

col1是分组字段,col2是排序字段

实例:从student表里面对学号sNo分组,对创建日期排序created_date

SELECT s.*, row_number() OVER(PARTITION BY sNo ORDER BY created_date desc)  as rk FROM student s;

2.rank() over(partition by col1 order by col2) 
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)

rank与row_number的区别是,rank如果有多条记录排序他是跳跃的方式如下:

row_number方式:

1

2

3

4

rank方式:

1

1

1

4

 

posted @ 2017-12-06 16:43  wjj1013  阅读(464)  评论(0编辑  收藏  举报