查询Oracle字段列的最大值并查询多列数据的实现方法

简介: 查询Oracle字段列的最大值并查询多列数据的实现方法

查询Oracle字段列的最大值并查询多列数据的实现方法比较:
第一种:max() over() 效率分析:从执行计划上Cardinality、CPU Cost上优于rownumber方式,直接分组取最大值;

select serialno,itemno,logcontent,workdate from (
select t.serialno,t.itemno,t.logcontent,t.workdate,max(t.workdate) over (partition by itemno) maxdate from l_loginfo t
) where workdate = maxdate and itemno is not null;

第二种:rownumber() 效率分析: 此种函数先分组编号再进行排序操作;

select serialno,itemno,logcontent,workdate from (
select t.serialno,t.itemno,t.logcontent,t.workdate,row_number() over (partition by itemno order by t.workdate desc) ma
from l_loginfo t) where ma = 1;

第三种:最普通的方式in,需要小范围扫描一次表,再大范围扫描一次表;

select serialno, t.itemno,t.workdate, t.logcontent as lastProgress

    from  l_loginfo t                                       
   where (t.itemno, t.workdate) in                          
         (select xx.itemno, max(xx.workdate) workdate       
            from  l_loginfo xx                              
           group by xx.itemno );

综上三种方法,通过分析执行计划,可以看出使用max() over()查询方案是最优的。

相关文章
|
4月前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
81 0
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的还原数据
Oracle数据库中的还原数据(也称为undo数据或撤销数据)存储在还原表空间中,主要用于支持查询的一致性读取、实现闪回技术和恢复失败的事务。文章通过示例详细介绍了还原数据的工作原理和应用场景。
【赵渝强老师】Oracle的还原数据
|
4月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
54 7
|
1月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
1月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
3月前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
2月前
|
Oracle 关系型数据库 数据库
oracle数据创建同义词
oracle数据创建同义词
58 0
|
4月前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
80 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle误删数据怎么恢复?
Oracle误删数据怎么恢复?
56 0

推荐镜像

更多