`
jishublog
  • 浏览: 868984 次
文章分类
社区版块
存档分类
最新评论

Oracle中窗口函数over()的学习

 
阅读更多

Oracle中窗口函数over()的学习

近一个月没有写博客了,今天学习了一下Oracle中窗口函数的使用,所以将自己的学习心得分享给大家。

使用窗口函数可以解决一些问题。比如说如果我们有两张表,一张教师的表,一张系的表,如果我们想查询每个系的老师的平均工资,这当然没什么问题,但是如果加上同时把老师的信息查询出来,那么就麻烦了,我们需要将每个系的老师的平均工资看成一张临时表,来和原先的老师的表进行连接查询;或者说查询每个系工资最高的老师的信息,有些的时候,像这种分组的,多表的,统计的,经常涉及查询每个查询的具体信息,写的时候增加了我们的难度,如果使用窗口函数,再配合一些其他的函数使用,很简单的就可以解决这个问题。

有时候查询,我们需要将我们的结果显示在每条记录里,oracle中的这个窗口函数就可以解决这个问题。

窗口函数的名字是over()函数,常用的有两个属性partition byorder bypartition by类似于group by,我们通常将group by叫做分组,而partition by称作分区,分组返回通常是一行,partition by返回的是多行。

如果将Oracle中的这个over()函数和其他的函数联合使用将会发挥更大的作用,比如最值的问题,获取其他行的数据等。

1、和统计函数(聚合函数)使用

可以和count() sum() avg() min() max()这些函数使用,这样在查询市,还可以显示每条记录的信息,比如说查询每个系的老师的平均工资和老师的信息,如图所示:

2、和排名函数使用

有时在后台查询数据库时,需要向前台那样显示序号,oracle提供了三个函数,搭配over()函数更有用。如图所示:

3、和错行的函数使用

Oracle中有两个类似于错行的行数,在本行可以取到其他行的数据。lead函数和lag函数。如图所示:

4、取最值的函数first_value()

通过和该函数的联合使用,可以解决最值问题。常用的有两外的属性值。

无论是那种方式都会在查询的记录上添加一列的信息,有时候需要这种需求,使用这个函数还可以解决使用group by时,只能查询分组的字段值的问题。

分享到:
评论

相关推荐

    oracle分析函数,窗口函数,报表函数

    oracle分析函数,窗口函数,报表函数 分析函数(OVER) 分析函数2(Rank, Dense_rank, row_number) 分析函数3(Top/Bottom N、First/Last、NTile)

    ORACLE 常用分析函数

    窗口函数;报表函数;分析函数总结;26个分析函数;PLSQL开发笔记和小结;分析函数简述  ROW_NUMBER () OVER([partition_clause] order_by_clause) dense_rank在做排序时如果遇到列有重复值,则重复值所在行的序列值...

    oracle 分析函数详解(有例子)

    4 Oracle开发专题之:窗口函数 5 Oracle开发专题之:报表函数 6 Oracle开发专题之:分析函数总结 7 Oracle开发专题之:26个分析函数 8 分析函数简述">1 Oracle开发专题之:分析函数 OVER 2 Oracle开发专题之:...

    深入浅出Oracle分析函数

    目录 Oracle开发专题之:分析函数(OVER) Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) Oracle开发专题之:分析函数3(Top/Bottom N、First/Last、NTile) Oracle开发专题之:窗口函数 ...

    oracle高级函数说明

    包含Oracle常用的高级函数,比如取前N名,每个分组的前N名等。 详细介绍Oracle分析函数(OVER、Rank、Dense_rank、row_number、Top/Bottom N、First/Last、NTile) ,窗口函数,报表函数

    oracle分析函数在BI分析中应用事例

    Over不能单独使用,用来制定数据窗口大小 Partition by表示分类数据集合,在此集合上的运算 Order by 跟排序字段,range时只能按一个字段排序,使用rows是可以跟多个字段排序 Range 可以使用range 100 preceding 也...

    Oracle开发之报表函数

    一、回顾一下前面《Oracle开发之窗口函数》中关于全统计一节,我们使用了Oracle提供的: 代码如下:sum(sum(tot_sales)) over (order by month rows between unbounded preceding and unbounded following) 来统计...

    深入探讨:oracle中row_number() over()分析函数用法

    row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的...

    深入浅出oracle分析函数(全)

    分析函数(OVER) 分析函数2(Rank, Dense_rank, row_number) 分析函数3(Top/Bottom N、First/Last、NTile) ...窗口函数 报表函数 分析函数总结 26个分析函数 PLSQL开发笔记和小结 分析函数简述

    PL/SQL Developer v8.0.zip

    集成调试器(要求Oracle 7.3.4或更高)——该调试器提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何程序...

    PLSQLDeveloper下载

    集成调试器(要求Oracle 7.3.4或更高)——该调试器提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何...

    Toad 使用快速入门

    TOAD提供语法标识、错误标识和其他很多易于使用的功能,如在弹出窗口显示表名、列名和Oracle函数。和其他的 PL/SQL 编辑工具不同,TOAD 允许在一个文件中操作多个数据库对象,可以编译一个对象、编译多个对象、编译...

    PL/SQL Developer8.04官网程序_keygen_汉化

     该调试器(要求Oracle 7.3.4或更高)提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何程序单元(包括...

    SQL培训第一期

    1 SQL基础 1.1 基本概念 结构化查询语言(Structured Query ...select后面出现的列,如果没有使用集合函数,必须出现在group by 中。 select sno,sname,sum(grade) from student group by sno,sname; //合法写法 select...

    NTKO文档在线编辑控件4.0.1.2

    NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel,Wps等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制,附件上传等办公自动化系统...

    vc++ 应用源码包_1

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_2

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_6

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_5

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_3

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

Global site tag (gtag.js) - Google Analytics