好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle分析函数ROW_NUMBER()

Oracle分析函数RANK()|ROW_NUMBER()|LAG()使用详解 ROW_NUMBER()函数: row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序),效率更高(?效率貌更差些,实际测验时)。 ROW_NUMBER()的使用方法: ROW_NUMBER() OVER (PARTITION BY C

Oracle分析函数RANK()|ROW_NUMBER()|LAG()使用详解

ROW_NUMBER()函数:

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序),效率更高(?效率貌似更差些,实际测验时)。

ROW_NUMBER()的使用方法:
ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)
详细说明:
根据COL1分组
在分组内部根据 COL2排序
而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的)

ROW_NUMBER()语法如下: 1、row_number() over( order by column desc )先对列 column 按照降序,再为每条记录返回一个序列号: SELECT D.*, ROW_NUMBER() OVER( ORDER BY D.R_OPATE_NUM DESC ) AS INX FROM REPORT_DATA D

ROW_NUMBER()语法如下:

1、row_number() over(order by column desc)先对列column按照降序,再为每条记录返回一个序列号:
SELECT D.*, ROW_NUMBER() OVER(ORDER BY D.R_OPATE_NUM DESC) AS INX FROM REPORT_DATA D 

[sql] view plaincopyprint?

2、row_number() over(partition by column1 order by column2 asc ) 先按照column1分组,再对分组后的数据进行以column2升序排列 select personalid,ct_smp_type,row_number() over(partition by personalid order by ct_smp_type asc ) rn from neogoodsrule 语法1的具体实例:获取前100名人员的排名信息,如下

2、row_number() over(partition by column1 order by column2 asc) 先按照column1分组,再对分组后的数据进行以column2升序排列
select personalid,ct_smp_type,row_number() over(partition by personalid order by ct_smp_type asc) rn from neogoodsrule 

语法1的具体实例:获取前100名人员的排名信息,如下 

[sql] view plaincopyprint?

  WITH   REPORT_DATA   AS           (  SELECT   DW.DWID,DW.DWMC,JY.JYXM,JY.JH,RMPC.R_OPATE_NUM           FROM   REPORT_MONTH_PERSON_COUNT RMPC,JWT_JYXX JY,T_DWXX DW          WHERE   RMPC.JYID = JY.JYUSERID          AND   JY.SSDW = DW.DWID          AND   RMPC.R_YEAR = 2013          AND   RMPC.R_MONTH = 6          AND   JY.SSDW   LIKE     '4102%'            ORDER     BY   RMPC.R_OPATE_NUM   DESC  )      SELECT   B.*      FROM   (  SELECT   D.*, ROW_NUMBER() OVER(  ORDER     BY   D.R_OPATE_NUM   DESC  )   AS   INX               FROM   REPORT_DATA D             ) B      WHERE   B.INX     ORDER     BY   B.INX 

      

[sql] view plaincopyprint?

查看更多关于Oracle分析函数ROW_NUMBER()的详细内容...

  阅读:41次