·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> Oracle中的over(partitionby...)分析函数及开窗函数
假设有一张表student
Name Score InsertTime (Name:姓名 Score:成绩 InsertTime:考试时间)
张三 20 2015-08-08
李四 12 2015-09-01
小Q 33 2015-09-03
张三 20 2015-09-08
李四 12 2015-07-01
小Q 25 2015-06-03
现在要求每个人按照考试时间的先后顺序进行排序,请写出Oracle语句
答:
select row_number() over(partition by name order by inserttime) row_number,student.* from student
解释:
partition by 根据名字先进行分组,order by 在根据inserttiom进行排序
结果
张三 20 2015-08-08
张三 20 2015-09-08
李四 12 2015-07-01
李四 12 2015-09-01
小Q 25 2015-06-03
小Q 33 2015-09-03
这种方法可以灵活应用。比如取每个分组中的最新数据或者第一条数据
select row_number() over(partition by name order by inserttime) row_number,student.* from student where row_number=1
张三 20 2015-08-08
李四 12 2015-07-01
小Q 25 2015-06-03
有问题直接留言 第一时间回复