首页 > 数据库 >Oracle多层子查询无法识别外层table

Oracle多层子查询无法识别外层table

时间:2023-12-11 10:37:39浏览次数:29  
标签:no price 分片 多层 part article Oracle table

select something, somthingelse, 
  (
    select * from 
    (
      select QUOTE_PRICE as old_price
      from price_history
      where price_history.part_no= article_table.part_no
      order by valid_from desc
    ) where rownum=1
  )
from  article_table where rownum < 5

!> 这里是会报:SQL Error: ORA-00904: “article_table “.”part_no”: invalid identifier

  • 说明:在oracle中,子查询只能嵌套两层,否则就不能识别到第三层的就不能识别到第一层的table。

  • 解决方案: 按分片,各自分片各自计算row_number

-- 外层嵌套为获取每个分片第一条
SELECT something, somthingelse, old_price
FROM (
   SELECT a.something, a.somthingelse, p.quote_price old_price,
          -- 分片键 + 排序方式
          row_number() over (PARTITION BY a.part_no ORDER BY valid_from DESC) rnk
   FROM article_table a
   LEFT JOIN price_history p ON a.part_no = p.part_no
) WHERE rnk = 1;

标签:no,price,分片,多层,part,article,Oracle,table
From: https://www.cnblogs.com/lulu-buding/p/17893787.html

相关文章

  • Oracle切换undo后如何确定使用旧undo的会话信息
     Oracle切换undo后如何确定使用旧undo的会话信息 背景是这样的,最近RAC的磁盘组90%报警,存储空间只能再加2T空间。而这套RAC的DATA组用了normal冗余,不知道当初哪个大聪明这么搞的,底层还是做了RAID10的。领导也不知道不懂这么设置的。因此,这新的2T创建新磁盘组且使用extern......
  • oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
    一、用途强行启用并行度来执行当前SQL。这个在Oracle9i之后的版本可以使用,之前的版本现在没有环境进行测试。也就是说,加上这个说明,可以强行启用Oracle的多线程处理功能。举例的话,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时启用(2核以上的比较明显),使用parallel说明,就会......
  • oracle内存调整
    sql查看oralce内存大小SELECTsum(bytes)/1024/1024/1024GBytesFROMdba_segments备份和恢复冷备份--关闭数据库sqlplus/nologconnect/assysdbashutdownimmediate;--查询文件位置--控制文件selectnamefromv$controlfile;'''/home/oracle/app/oracle/ora......
  • ORACLE数据库高水位线
    文档课题:ORACLE数据库高水位线(highwatermark).数据库:oracle11.2.0.41、实验测试1.1、建测试表SQL>createuserleoidentifiedbyleo;Usercreated.SQL>grantdbatoleo;Grantsucceeded.SQL>connleo/leo;Connected.SQL>createtablehswasselect*fr......
  • Oracle查看和终止正在执行的SQL语句
    Oracle查看和终止正在执行的SQL语句--查询当前用户正在执行的SQL语句selecta.sid,a.serial#,a.paddr,a.machine,nvl(a.sql_id,a.prev_sql_id)sql_id,b.sql_text,b.sql_fulltext,b.executions,b.first_load_time,b.last_load_time,b.last_active_time,b.disk_reads,b.direct_wr......
  • oracle日志模式
    oracle日志模式一、oracle日志模式分为(logging,forcelogging,nologging)默认情况是logging,就是会记录到redo日志中,forcelogging是强制记录日志,nologging是尽量减少日志。FORCELOGGING可以在数据库级别、表空间级别进行设定、而LOGGING与NOLOGGING可以在表级别设定。注:FORCELOGGIN......
  • 基于支持向量机SVM和MLP多层感知神经网络的数据预测matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述      支持向量机(SVM)和多层感知器(MLP)是两种常用的机器学习算法,它们在数据预测和分类任务中都有广泛的应用。下面将详细介绍这两种算法的原理和数学公式。 一、支持向量机(SVM) ......
  • 【Cpp 基础】泛型算法 stable_sort() 的应用
    最近在刷牛客的题。经常遇到排序问题,经常有一个附加的规则:相同的数值的,按照录入的顺序排序。可是C++的sort()的底层是快速排序,并不能保证相同数值的顺序不改变。所以最后我不得不自己写冒泡排序。(冒泡排序不改变相同数值的录入顺序)写了那么多的排序,但是其实C++里封装有排序函数......
  • DataTables中的column().visible()
    DataTables中的column().visible()用来获取/设置单个选定列的可见性。描述在数据表中显示和隐藏列非常方便,尤其是在显示信息密度较大的表时。此方法允许即时更改单个列的可见性,或读取列的可见性状态。函数column().visible()描述:获取所选列的可见性。返回值:booleantrue如果该......
  • flinkcdc连接oracle的报错汇总
    报错一:原因分析:字面原因,找不到 org.apache.flink.table.api.ValidationException类。解决办法:根据类名可知,应该 org.apache.flink.table.api包下面的,然后去阿里云maven仓库搜索,添加如下依赖即可 报错二:原因分析:ORA-16331:容器"ORCLPDB1"未打开。解决办法:使用命令打......