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;
原文:https://www.cnblogs.com/thaipine/p/10464997.html