码迷,mamicode.com
首页 > 其他好文 > 详细

ROW_NUMBER() OVER函数的用法

时间:2015-12-24 13:23:37      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

   partition 划分,分割

--ROW_NUMBER() 就是生成一个有顺序的行号,而他生成顺序的标准,就是后面紧跟的OVER(ORDER BY ID)

--还必须添加OVER语句以便告诉SQL Server你希望怎样添加行序号。

 实例:初始化数据

create table school (id int,class varchar2(12),score decimal(10,2))
insert into school values (1,yiban,85.00);
insert into school values (2,yiban,90.00);
insert into school values (3,yiban,72.00);
insert into school values (4,erban,60.00);
insert into school values (5,erban,83.00);
insert into school values (6,erban,76.00);
insert into school values (7,sanban,92.00);
insert into school values (8,sanban,63.00);
insert into school values (9,sanban,59.00);
insert into school values (10,sanban,77.00);
insert into school values (11,siban,84.00)

  数据显示为

技术分享

需求:把所有同学的成绩按降序排列,再为降序后的每条记录返回一个序号

sql脚本:

select row_number()over(order by score desc) rank,score from school

数据显示为:

技术分享

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

需求:根据班级分组,显示每个班级的成绩成绩排名

sql脚本:

select row_number()over(partition by class order by score desc) rank ,id,class,score from school

数据显示为:技术分享

ROW_NUMBER() OVER函数的用法

标签:

原文地址:http://www.cnblogs.com/hdzcz/p/5072687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!