FIRST_VALUE、LAST_VALUE分析函数可以按照特定分组和排序取出组内首尾值,语法

FIRST_VALUE { (expr) [ {RESPECT | IGNORE} NULLS ]| (expr [ {RESPECT | IGNORE} NULLS ])}OVER (analytic_clause)

测试下

10:48:07 SCOTT@study> SELECT EMPNO,
10:48:15   2         DEPTNO,
10:48:15   3         SAL,
10:48:15   4         FIRST_VALUE(SAL) IGNORE NULLS OVER(PARTITION BY DEPTNO ORDER BY SAL) AS LOWEST_IN_DEPT,
10:48:15   5         FIRST_VALUE(SAL) IGNORE NULLS OVER(PARTITION BY DEPTNO ORDER BY SAL ROWS 1 PRECEDING) AS PRECEDING_IN_DEPT,
10:48:15   6         LAST_VALUE(SAL) IGNORE NULLS OVER(PARTITION BY DEPTNO ORDER BY SAL) AS HIGHEST_IN_DEPT,
10:48:15   7         LAST_VALUE(SAL) IGNORE NULLS OVER(PARTITION BY DEPTNO ORDER BY SAL ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS HIGHEST_IN_DEPT
10:48:15   8    FROM EMP;EMPNO     DEPTNO        SAL LOWEST_IN_DEPT PRECEDING_IN_DEPT HIGHEST_IN_DEPT HIGHEST_IN_DEPT
---------- ---------- ---------- -------------- ----------------- --------------- ---------------7934         10       1300           1300              1300            1300            50007782         10       2450           1300              1300            2450            50007839         10       5000           1300              2450            5000            50007369         20        800            800               800             800            30007876         20       1100            800               800            1100            30007566         20       2975            800              1100            2975            30007788         20       3000            800              2975            3000            30007902         20       3000            800              3000            3000            30007900         30        950            950               950             950            28507654         30       1250            950               950            1250            28507521         30       1250            950              1250            1250            28507844         30       1500            950              1250            1500            28507499         30       1600            950              1500            1600            28507698         30       2850            950              1600            2850            285014 rows selected.Elapsed: 00:00:00.00
10:48:17 SCOTT@study>

LAST_VALUE的默认写法结果不符合预期,是因为默认的开窗语句"RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW",所以需要显性写出正确的开窗语句

转载于:https://www.cnblogs.com/yongestcat/p/11248907.html

Oracle分析函数FIRST_VALUE、LAST_VALUE相关推荐

  1. 窗口分析函数19_Mysql查询窗口函数里第一个 最后一个 第N个元素的值的案例详解(FIRST_VALUE LAST_VALUE NVH_VALUE)

    Mysql查询窗口函数之按序号取元素详解 需求概述 查询以课程(course)分区以分数(score)逆序的窗口里的第一个.最后一个和第2个元素对应的值.示例表数据见下: SELECT '数学' co ...

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

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

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

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

  4. Oracle分析函数巧妙使用

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

  5. Oracle分析函数——函数列表

    --------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...

  6. oracle 分析函数、GROUPING函数

    分析函数 over(Partition by...) 一个超级牛皮的ORACLE特有函数.天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊!oracle的分析函数o ...

  7. Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

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

  8. oracle计算最大与最小之间数,oracle 分析函数

    oracle分析函数,主要五大类 一等级函数:row_number();DENSE_RANK();Rank() 主要就是遇到相同排名时的区别, 查询各部门职位级别最高的2个人 select * fro ...

  9. oracle regr,oracle 分析函数

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

最新文章

  1. python局域网传输文件_Python+pyftpdlib实现局域网文件互传
  2. android 处理双击事件
  3. Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
  4. 简单直接的方法解析JSON数据
  5. CRM 客户关系管理
  6. MyEclipse创建struts.xml
  7. 鲨鱼 抓包 oracle,抓包工具wireshark的操作使用
  8. CentOS添加swap分区
  9. 从头开始学做 canvas 动画引擎
  10. linux centos用户修改密码,centos怎么修改用户密码
  11. DTCC大会归来感想
  12. 手摸手。完成一个H5 抽奖功能
  13. Arcgis报错 ERROR 999999的解决方法汇总
  14. EF(Entity Framework、EF Core)
  15. 重庆顶香味分析快手春竹笋的制作方法
  16. [PowerBI]DAX虚拟连接函数:TREATAS()用法介绍
  17. C++Primer第五版——习题答案详解(六)
  18. 词根、词缀笔记(一)
  19. 【Teradata】windows部署安装Teradata数据库(附虚拟机扩展包)
  20. HP 3PAR可用容量计算方式

热门文章

  1. 【python】关于控制台的中文输出出现\x形式的问题 python常用包与如何安装
  2. legend3---laravel中获取控制器名称和方法名称
  3. 【基础算法-模拟-例题-*校长的问题】-C++
  4. jvm垃圾回收器(《深入理解java虚拟机》)
  5. node express 学习笔记
  6. ROS Indigo下安装测试Xtion Pro
  7. Jzoj4458 密钥破解——Pollard-rho
  8. 【JQuery】jQuery(document).ready(function($) { });的几种表示方法及load和ready的区别
  9. Gibbs sampling
  10. AWK增强的文本处理shell特征--AWK完全手册