Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中窗口函数over()的学习

今天学习了一下Oracle中窗口函数的使用,所以将自己的学习心得分享给大家。使用窗口函数可以解决一些问题。比如说如果我们有两张表,一张教师的表,一张系的表,如果我们想查询每个系的老师的平均工资,这当然没什么问题,但是如果加上同时把老师的信息查询出来,那么就麻烦了,我们需要将每个系的老师的平均工资看成一张临时表,来和原先的老师的表进行连接查询;或者说查询每个系工资最高的老师的信息,有些的时候,像这种分组的,多表的,统计的,经常涉及查询每个查询的具体信息,写的时候增加了我们的难度,如果使用窗口函数,再配合一些其他的函数使用,很简单的就可以解决这个问题。有时候查询,我们需要将我们的结果显示在每条记录里,Oracle中的这个窗口函数就可以解决这个问题。窗口函数的名字是over()函数,常用的有两个属性partition by和order by,partition by类似于group by,我们通常将group by叫做分组,而partition by称作分区,分组返回通常是一行,partition by返回的是多行。如果将Oracle中的这个over()函数和其他的函数联合使用将会发挥更大的作用,比如最值的问题,获取其他行的数据等。相关阅读:Oracle窗口函数基础知识学习  http://www.linuxidc.com/Linux/2013-01/78294.htm1、和统计函数(聚合函数)使用可以和count() 、sum() 、avg() 、min() 、max()这些函数使用,这样在查询市,还可以显示每条记录的信息,比如说查询每个系的老师的平均工资和老师的信息,如图所示:2、和排名函数使用有时在后台查询数据库时,需要向前台那样显示序号,oracle提供了三个函数,搭配over()函数更有用。如图所示:3、和错行的函数使用Oracle中有两个类似于错行的行数,在本行可以取到其他行的数据。lead 函数和lag函数。如图所示:4、取最值的函数first_value()通过和该函数的联合使用,可以解决最值问题。常用的有两外的属性值。无论是那种方式都会在查询的记录上添加一列的信息,有时候需要这种需求,使用这个函数还可以解决使用group by时,只能查询分组的字段值的问题。更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12MySQL Workbench 6面世 GUI获重大改进Oracle通过job定时执行任务相关资讯      Oracle函数  Oracle over函数  Oracle窗口函数 
  • Oracle字符串函数总结  (06月20日)
  • Oracle lag()与lead() 函数  (12/01/2015 20:41:24)
  • Oracle ascii函数  (07/26/2015 08:46:01)
  • Oracle使用简单函数  (06月09日)
  • REGEXP_SUBSTR函数的整理  (08/20/2015 20:41:01)
  • Oracle dump函数  (07/26/2015 08:40:01)
本文评论 查看全部评论 (0)
表情: 姓名: 字数