ITPub博客

首页 > Linux操作系统 > Linux操作系统 > row_number() over函数

row_number() over函数

原创 Linux操作系统 作者:zhaoqing0803 时间:2013-10-24 14:45:42 0 删除 编辑
     row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 
  举个例子:
   1、首先创建一个表
      create table tab1(
        id number(4),
        name varchar2(100)
      );
   2、插入几条记录
     insert into tab1 (ID, NAME) values (1, 'aa');
     insert into tab1 (ID, NAME) values (1, 'ab');
     insert into tab1 (ID, NAME) values (1, 'ac');
     insert into tab1 (ID, NAME) values (2, 'bb');
     insert into tab1 (ID, NAME) values (2, 'bc');
     insert into tab1 (ID, NAME) values (2, 'bd');
     insert into tab1 (ID, NAME) values (3, 'cc');
     insert into tab1 (ID, NAME) values (3, 'cd');
     insert into tab1 (ID, NAME) values (3, 'ce'); 
   3、需求为按id分组,在组内以name排序,排序为前两个,这时就需
      要用到row_number over 函数
       select * from (
        select id,name,row_number() over (partition by
        id   order by name) row_num
         from tab1)
        where row_num<3
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23205405/viewspace-774962/,如需转载,请注明出处,否则将追究法律责任。

下一篇: dba_source
请登录后发表评论 登录
全部评论

注册时间:2010-01-18

  • 博文量
    21
  • 访问量
    34455