首页 > 数据库 >oracle 分析函数 FIRST_VALUE、LAST_VALUE

oracle 分析函数 FIRST_VALUE、LAST_VALUE

时间:2023-04-26 19:38:31浏览次数:39  
标签:LAST SAL SUM VALUE JOB oracle DEPTNO ORDER


用SCOTT/TIGER登录。


FIRST_VALUE、LAST_VALUE是两个分析函数。返回结果集中排在第一位和最后一位的值。


使用FIRST_VALUE:

SELECT DEPTNO, JOB, SUM(SAL), FIRST_VALUE(SUM(SAL)) OVER (PARTITION BY DEPTNO ORDER BY SUM(SAL)) 
FROM EMP GROUP BY DEPTNO, JOB ORDER BY DEPTNO, JOB;



结果:

oracle 分析函数 FIRST_VALUE、LAST_VALUE_SQL


使用LAST_VALUE:

SELECT DEPTNO, JOB, SUM(SAL), LAST_VALUE(SUM(SAL)) OVER (PARTITION BY DEPTNO ORDER BY SUM(SAL) ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) 
FROM EMP GROUP BY DEPTNO, JOB ORDER BY DEPTNO, JOB;



结果:

oracle 分析函数 FIRST_VALUE、LAST_VALUE_分析函数_02


对于LAST_VALUE,要加

ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING


否则,SQL如:

SELECT DEPTNO, JOB, SUM(SAL), LAST_VALUE(SUM(SAL)) OVER (PARTITION BY DEPTNO ORDER BY SUM(SAL)) 
FROM EMP GROUP BY DEPTNO, JOB ORDER BY DEPTNO, JOB;



结果:

oracle 分析函数 FIRST_VALUE、LAST_VALUE_返回结果_03


就不对了。


标签:LAST,SAL,SUM,VALUE,JOB,oracle,DEPTNO,ORDER
From: https://blog.51cto.com/u_1002776/6228654

相关文章

  • oracle 分析函数 LAG、LEAD
    用SCOTT/TIGER登录。LAG()和LEAD()统计函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。SQL:SELECTJOB,SAL,LAG(SAL)OVER(ORDERBYJOB)FROMEMP;结果:SQL:SELECTJOB,SAL,LAG(SAL,2)......
  • oracle SQL引擎和PL/SQL引擎
    如下图所示,PL/SQL引擎会执行过程化语句,但它把SQL语句发送给SQL引擎处理,然后SQL引擎把处理的结果返回给PL/SQL引擎。PL/SQL和SQL引擎间的频繁切换会大大降低效率。典型的情况就是在一个循环中反复执行SQL语句。例如,下面的DELETE语句就会在FOR循环中被多次发送到SQL引擎中去:初始化一......
  • oracle Io 异常: The Network Adapter could not establish the connection
    用jdbc连oracle的时候,报错:java.sql.SQLException:Io异常:TheNetworkAdaptercouldnotestablishtheconnection查看C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN里的listener.ora和tnsnames.ora,发现端口变成了1527,不知道怎么回事,默认是1521啊。改回来,就可以了。......
  • oracle 游标总结
    for循环游标DECLARECURSORC_EMPISSELECTEMPNO,ENAME,JOB,SALFROMEMPWHEREJOB='MANAGER';V_ROWC_EMP%ROWTYPE;BEGINFORV_ROWINC_EMPLOOPDBMS_OUTPUT.put_line(V_ROW.EMPNO||'-'||V_ROW.ENAME||'-'||V_ROW.JOB......
  • elastic-job源码(2)-选举机制
    选举机制:利用zookeeper分布式锁机制,每一个job都存在节点选举机制,用于job分片处理。  Job在初始化的时候就会实施选举机制如下初始化的代码: publicvoidregisterStartUpInfo(finalbooleanenabled){//开始所有的监听器listenerManager.startAllListeners();......
  • wpf中IValueConverter的两种实现方式(key和静态实例)以及 ValueConversion 特性
    使用值转换器的场景:你得到一个值,你需要根据你的需求转成另一个东西,可以是图片、对象等等都行传入的是object,传出的也是object,使用值转换器需要继承接口:IValueConverter里面有两个方法Convert和 ConvertBackConvert很好理解:你把xaml中某个对象中的某个属性或其他值传递到Value......
  • 用java调用oracle存储过程总结
    用java调用oracle存储过程总结[code]1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。......
  • Oracle数据库设计——定义约束 主键
    Oracle数据库设计——定义约束主键[code]声明约束主键(PRIMARYKEY)一张表不一定有主键,但大多数表都创建了主键,主键值必须唯一并且组成主键的各列都不能为空。想象一下存储学生信息的一张表。在学生表(STUDENTS)每个学生有且仅有一行记录。因此,在S......
  • Oracle中UNION 与UNION ALL的学习
    Oracle中UNION与UNIONALL的学习[code]1、UNION:并集,所有的内容都查询,重复的显示一次;2、UNIONALL:并集,所有的内容都显示,包括重复的;3、INTERSECT:交集,只显示重复的;4、MINUS:差集,只显示对方没有的(跟顺序是有关系的)两者都是对记录集操作,把来自许多SELE......
  • Oracle 19c的参数sec_case_sensitive_logon与ORA-01017错误
    Oracle的参数sec_case_sensitive_logon是Oracle11g开始被引入。这个参数主要是为了控制密码的大小写敏感问题。sec_case_sensitive_logon=true表示密码区分大小写。sec_case_sensitive_logon=false表示密码不区分大小写。从Oracle12c开始,参数sec_case_sensitive_logon被弃用......