首页 > 数据库技术 > 详细

oracle中row_number() over()

时间:2019-03-03 14:25:15      阅读:408      评论:0      收藏:0      [点我收藏+]

ROW_NUMBER() OVER函数的基本用法
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
简单的说row_number()从1开始,为每一条分组记录返回一个数字,

用法1:
ROW_NUMBER() OVER (ORDER BY birth DESC)
先按birth列降序排序,再为降序以后的每条记录返回一个序号。

用法2:
row_number() OVER (PARTITION BY COL1 ORDER BY COL2 ASC)
表示根据COL1分组,在分组内部根据 COL2升序排序,而此函数计算的值就表示每组内部排序后(记录)的顺序编号(组内连续的唯一的)


例如:

 1 SELECT 
 2        row_number() over (order by CT.TRANSACTIONNUM asc) as row_number,  
 3        CT.BEG_DATE,---日期
 4        CT.SECURITYID,---交易品种
 5        CT.LATEST_CLEANPRICE,--最新利率(%)
 6        CT.WEIGHTED_CLEANPRICE,--加权平均利率%
 7        CT.WEIGHTED_YIELD_IR,--  加权平均利率(利率债)%
 8        ROUND(CT.TURNOVER/100000000,4) as  TURNOVER, --成交量(亿)
 9        CT.TRANSACTIONNUM, --- 成交笔数
10        CT.Updatetime,
11        CT.MDSUBTYPE
12 FROM TTRD_CMDS_CR_SERIES CT; 
13 
14 
15 SELECT 
16        -- row_number() over (partition by CT.BEG_DATE,CT.SECURITYID order by CT.Updatetime desc) as rank,  
17        CT.BEG_DATE,---日期
18        CT.SECURITYID,---交易品种
19        CT.LATEST_CLEANPRICE,--最新利率(%)
20        CT.WEIGHTED_CLEANPRICE,--加权平均利率%
21        CT.WEIGHTED_YIELD_IR,--  加权平均利率(利率债)%
22        ROUND(CT.TURNOVER/100000000,4) as  TURNOVER, --成交量(亿)
23        CT.TRANSACTIONNUM, --- 成交笔数
24        CT.Updatetime,
25        CT.MDSUBTYPE
26 FROM TTRD_CMDS_CR_SERIES CT; 

 

oracle中row_number() over()

原文:https://www.cnblogs.com/thaipine/p/10464997.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!