分析函数是什么?
分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。

分析函数和聚合函数的不同之处是什么?
普通的聚合函数用group by分组,每个分组返回一个统计值,而分析函数采用partition by分组,并且每组每行都可以返回一个统计值。

分析函数的形式
分析函数带有一个开窗函数over(),包含三个分析子句:分组(partition by), 排序(order by), 窗口(rows) ,他们的使用形式如下:over(partition by xxx order by yyy rows between zzz)。
注:窗口子句在这里我只说rows方式的窗口,range方式和滑动窗口也不提

分析函数例子(在scott用户下模拟)

示例目的:显示各部门员工的工资,并附带显示该部分的最高工资。

--显示各部门员工的工资,并附带显示该部分的最高工资。SELECT E.DEPTNO,       E.EMPNO,       E.ENAME,       E.SAL,       LAST_VALUE(E.SAL) OVER(PARTITION BY E.DEPTNO ORDER BY E.SAL ROWS --unbounded preceding and unbouned following针对当前所有记录的前一条、后一条记录,也就是表中的所有记录--unbounded:不受控制的,无限的--preceding:在...之前--following:在...之后BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) MAX_SALFROM EMP E;

运行结果:

示例目的:按照deptno分组,然后计算每组值的总和

SELECT EMPNO,       ENAME,       DEPTNO,       SAL,SUM(SAL) OVER(PARTITION BY DEPTNO ORDER BY ENAME) max_salFROM SCOTT.EMP;

运行结果:

示例目的:对各部门进行分组,并附带显示第一行至当前行的汇总

SELECT EMPNO,       ENAME,       DEPTNO,       SAL,--注意ROWS BETWEEN unbounded preceding AND current row  是指第一行至当前行的汇总SUM(SAL) OVER(PARTITION BY DEPTNO ORDER BY ENAME  ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) max_salFROM SCOTT.EMP;

运行结果:

示例目标:当前行至最后一行的汇总

SELECT EMPNO,       ENAME,       DEPTNO,       SAL,--注意ROWS BETWEEN current row AND unbounded following 指当前行到最后一行的汇总SUM(SAL) OVER(PARTITION BY DEPTNO ORDER BY ENAME  ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) max_salFROM SCOTT.EMP;

运行结果:

示例目标:当前行的上一行(rownum-1)到当前行的汇总

SELECT EMPNO,       ENAME,       DEPTNO,       SAL,--注意ROWS BETWEEN 1 preceding AND current row 是指当前行的上一行(rownum-1)到当前行的汇总 SUM(SAL) OVER(PARTITION BY DEPTNO ORDER BY ENAME ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) max_salFROM SCOTT.EMP;

运行结果:

示例目标:   当前行的上一行(rownum-1)到当前行的下辆行(rownum+2)的汇总

SELECT EMPNO,       ENAME,       DEPTNO,       SAL,--注意ROWS BETWEEN 1 preceding AND 1 following 是指当前行的上一行(rownum-1)到当前行的下辆行(rownum+2)的汇总SUM(SAL) OVER(PARTITION BY DEPTNO ORDER BY ENAME  ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING) max_salFROM SCOTT.EMP;

运行结果:

转载于:https://www.cnblogs.com/lcword/p/5717976.html

Oracle分析函数入门相关推荐

  1. oracle regr,oracle 分析函数

    一.Oracle分析函数入门 分析函数是什么? 分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统 ...

  2. Oracle分析函数五——统计分析函数

    Oracle 分析函数--统计分析函数 方差和标准差:     样本中各数据与样本平均数的差的平方和的平均数叫做样本方差:样本方差的算术平方根叫做样本标准差.样本方差和样本标准差都是衡量一个样本波动大 ...

  3. oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...

  4. 【分析函数】Oracle分析函数之LAG和LEAD

    [分析函数]Oracle分析函数之LAG和LEAD Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的 ...

  5. oracle 数据分析函数,ORACLE分析函数(一)

    ORACLE分析函数(1) 分析函数式ORACLE提供的用来进行数据统计的强有力工具,与我们常用的聚合函数具有一些相似性,但又完全不同.聚合函数,首先会将数据进行分组,然后对每一组数据进行运算,如求和 ...

  6. Oracle分析函数巧妙使用

    在 Oracle中使用Sql必须弄懂分析函数 Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) 6 Or ...

  7. Oracle 分析函数--Row_Number()

    row_number() over ([partition by col1] order by col2) ) as 别名 表示根据col1分组,在分组内部根据 col2排序 而这个"别名& ...

  8. Oracle编程入门经典 第12章 事务处理和并发控制

    目录 12.1          什么是事务处理... 1 12.2          事务处理控制语句... 1 12.2.1       COMMIT处理... 2 12.2.2       RO ...

  9. Oracle编程入门经典 第11章 过程、函数和程序包

    目录 11.1          优势和利益... 1 11.2          过程... 1 11.2.1       语法... 2 11.2.2       建立或者替换... 2 11.2 ...

最新文章

  1. python中文件读写位置的作用-文件操作,读,写,指定位置
  2. Linux文件系统的组成部分
  3. IOS开发学习记录第3天之C语言学习
  4. Android -- 发送Broadcast、有序无序
  5. idea jstl需要导包吗_1,IDEA-安装及全局配置
  6. 线性表--算法设计题2.23
  7. oracle估算数据增长,如何估算oracle 数据库,数据库对象历史增长情况
  8. HTML 区块、内联元素
  9. Python自动发送微信消息
  10. htc328d屏幕排线怎么换_HTC T328D中文Recovery刷机教程
  11. 淘宝直通车新功能智能推广 智能推广计划设置 智能推广优化 智能推广优化原则
  12. 电机位置、速度检测方法大合集
  13. 集中式存储和分布式存储
  14. php后端上传文件,php实现文件上传方法_后端开发
  15. 集群策略--集群(clustering)
  16. Excel表格复制粘贴后保持格式不变
  17. canvas画七巧板
  18. 跨境电商的商品是如何出口的-扬帆际海
  19. 江西师范大学计算机专硕导师,江西师范大学研究生助研岗位聘任名单.doc
  20. 基于腾讯位置服务,从零设计开发逆地址解析小程序

热门文章

  1. 2022-2028年中国导热硅胶行业市场研究及前瞻分析报告
  2. 机器学习分类指标:精确率、准确率、召回率详解
  3. xgboost lightgbm catboost 多分类 多标签
  4. Ramsey定理数学
  5. Python 读取文本时的 read/readline/readlines
  6. 万事开头难!最新MyBatis程序配置教程(IDEA版)
  7. Amazon SageMaker和NVIDIA NGC加速AI和ML工作流
  8. MindSpore静态图语法支持
  9. 利用NVIDIA NGC的TensorRT容器优化和加速人工智能推理
  10. 神经网络AI加速器技术