SQL 调用临时表中的最大行数

2024-02-28

在临时表中只有两列可用。我想获取每次加载的最新ID,如下图所示。

我已经尝试过,但它没有给我我需要的答案。

select max(rn_plus_1),a.load, a.id from( select a.load,
   a.id,
   ROW_NUMBER() over(order by a.id desc) rn from max_num a group by load
   , id) a

TEMP_TABLE 缺少顺序主键或任何其他插入顺序指示符。因此,不可能使用表本身的列来获取 LOAD 的最新 ID。

但是,有一种选择:ORA_ROWSCN() https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/ORA_ROWSCN-Pseudocolumn.html#GUID-8071AAB0-F656-4C93-B926-0BCE1439F121。这是一个伪列,用于标识系统更改编号交易这改变了桌子。因此我们可以通过对ORA_ROWSCN上的表进行排序来重构插入顺序。

有一些注意事项:

  1. 默认情况下,SCN 适用于块级别。因此,块中的所有行都具有相同的 SCN。对于宽表来说,这是一个足够好的近似值,但对于像 TEMP_TABLE 这样的两列玩具来说,这是没有希望的。我们可以在行级别跟踪 SCN,但前提是该表是使用 ROWDEPENDENCIES 创建的。默认值为 NOROWDEPENDENCIES。不幸的是,我们不能在这里使用 ALTER TABLE。您将需要删除并重新创建该表(*)启用 ROWDEPENDENCIES。
  2. SCN 适用于事务。这意味着只有在 TEMP_TABLE 中的每一行都插入到单独的事务中时,该解决方案才有效。
  3. 显然,只有当 TEMP_TABLE 是实际表而不是视图或其他构造时,这才有可能。

鉴于满足所有这些条件,这里的查询将为您提供所需的结果集:

select load, id
from ( select load
              , id
              , row_number() over (partition by load order by ora_rowscn desc) as rn
       from temp_table
)
where rn = 1

。此外,除了使用 NOROWDEPENDENCIES 定义的 TEMP_TABLE 之外,还有相同的演示,其中.


(*)如果您需要将数据保留在 TEMP_TABLE 中,步骤如下:

  1. rename TEMP_TABLE to whatever;
  2. create table TEMP_TABLE as select * from whatever rowdependencies;
  3. drop table whatever;

但是,现有行的 SCN 将相同。如果这很重要,您必须按照您希望保留的顺序一次插入每一行,并在每次插入后提交。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 调用临时表中的最大行数 的相关文章

  • 如何通过逗号分隔将 2 行合并为一行?

    我需要将这些单独的行合并到一列 我现在如何通过逗号分隔合并列 CID Flag Value 1 F 10 1 N 20 2 F 12 2 N 23 2 F 14 3 N 21 3 N
  • 当列的数据类型为 int 时,如何用字符串替换 null

    我有一个包含 3 列的表和如下示例数据 所有列都是数据类型int 我有这个查询 select foodid dayid from Schedule 我要更换dayid用字符串 ifdayid null 为此我尝试了这个查询 select f
  • 单向关系和双向关系的区别

    我想知道这两个词是什么意思 我遇到他们是在教义的文档 http www doctrine project org documentation manual 2 0 en association mapping 但我不明白他们的意思 这与常见
  • 数据库不存在。确保名称输入正确

    为什么我会出现这个错误 如果您查看屏幕截图 您将看到数据库 仅当我连接到两个数据库引擎时才会发生这种情况 它仅检测下面数据库引擎中的数据库 而不检测突出显示的数据库 除了关闭应用程序并仅打开一个数据库引擎之外 还有其他方法可以使用我的数据库
  • 如何使用 SQL Server 查询对“版本号”列进行排序

    我想知道我们当中的 SQL 天才是否可以向我伸出援助之手 我有一个专栏VersionNo在表中Versions包含 版本号 值 例如 VersionNo 1 2 3 1 1 10 3 1 1 4 7 2 etc 我正在寻找对此进行排序 但不
  • 如何在sql中提取周数

    我有一个 varchar2 类型的转换列 其中包含以下主菜 01 02 2012 01 03 2012 etc 我使用 to date 函数将其转换为另一列中的日期格式 这是我得到的格式 01 JAN 2012 03 APR 2012 当我
  • 如何查询多对多表(一个表的值成为列标题)

    给定此表结构 我想展平多对多关系 并将一个表的名称字段中的值设置为列标题 并将同一表中的数量设置为列值 目前可行的想法是将值放入字典 哈希表 中并用代码表示这些数据 但我想知道是否有 SQL 方法可以做到这一点 我还使用 Linq to S
  • 如果不存在则插入数据(来自 2 个表),否则更新

    再会 我有3张桌子 tbl仓库产品 ProductID ProductName ProductCode Quantity tbl分公司产品 ProductID ProductCode ProductCode Quantity Locatio
  • 如何将存储过程中的值返回到 EF

    我试图通过 EF 调用存储过程并从存储过程中检索返回值 我用过this https stackoverflow com questions 6861737 executesqlcommand with output parameter an
  • 查询交叉表视图

    我在 PostgreSQL 中有一个表 如下所示 Item1 Item2 Item3 Item4 Value1 Value2 Value3 Value4 我想要一个查询 该查询将显示如下表 ItemHead ValueHead Item1
  • JOOQ 查询 JOIN ON WITH 子句

    如何编写 JOOQ 查询来连接 with 子句中的字段 例如 我尝试过 create with a as select val 1 as x val a as y select from tableByName a join ANOTHER
  • Linq 到自定义 SQL

    好的 我有一个带有巨大表的数据库 超过 100 万条记录和 50 多个列 我知道它不是最佳的 但它是我必须处理的 所以我需要运行限制返回数据量的查询 现在我的问题是这样的 我有一些运行并返回数据的自定义查询 用户可以通过选择将生成谓词模板并
  • 如何使用 RODBC 将数据帧保存到数据库生成的主键表

    我想使用 R 脚本将数据框输入到数据库中的现有表中 并且希望数据库中的表具有顺序主键 我的问题是 RODBC 似乎不允许主键约束 这是创建我想要的表的 SQL CREATE TABLE dbo results ID INT IDENTITY
  • MySQL - 替换列中的字符

    作为一个自学成才的新手 我给自己制造了一个大问题 在将数据插入数据库之前 我将字符串中的撇号 转换为双引号 而不是 MySQL 实际需要的反斜杠和撇号 在我的表增长到超过 200 000 行之前 我认为最好立即纠正此问题 所以我做了一些研究
  • SQL 查询在多用户环境中返回错误值

    一段时间以来 我们在我们的一个客户站点上发现了奇怪的数据完整性问题 经过大量调查后 我们现在已将其隔离为数据库调用 如果两个用户同时调用同一个存储过程 有时一个用户会得到另一个用户的结果 我们设置了一个测试来验证这一点 并且我们有一个循环
  • 如何在 postgreSQL 中从时间戳中减去/添加分钟

    我有以下场景 我有员工登记他们的上班 下班手续 但他们有10分钟的容忍度 我通过这种观点得到的最新条目 CREATE OR REPLACE VIEW employees late entries id created datetime en
  • PDO::PARAM_FLOAT 不存在,为什么?

    我想知道为什么 PDO PARAM FLOAT 不存在以及什么可以替代它 没有 可能是由于隐含的舍入问题 只需使用PDO PARAM STR并使用将浮点数转换为字符串strval float or string float
  • Django 模型 - 外键作为主键

    我有以下2张表 在 models py 中 class Foo models Model uuid models CharField UUID primary key True default uuid4 and class FooExt
  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • 扁平化/反规范化 SQL 查找表的最佳方法?

    我有很多这样的表 Lookup HealthCheckupRisks ID Name 1 Anemia 2 Anorexic 3 Bulemic 4 Depression 122 Syphilis PatientRisksOnCheckup

随机推荐

  • 有没有适用于 Android 传真的本机应用程序?

    我想开发一个传真应用程序 我在谷歌上搜索并找到了一些链接 用于在android上开发传真应用程序的应用程序 但是我想使用android的本机应用程序开发应用程序 在一些网站上 我读到免费的网络服务可用于发送 使用Android移动应用程序接
  • Rcpp 公开类的序列化

    我在 R 包中编写了一个 C 类 并将其暴露给 R 命名空间RCPP EXPOSED CLASS and RCPP MODULE 一切都很好 gt index An object of class Index Slot index C ob
  • 我使用 PyPy 是否错误?它比标准 Python 慢 10 倍

    我听说过有关 PyPy 的好消息 特别是我听说它非常快 这让我想知道它是否可用于我的嵌入式项目 我下载了PyPy 2 6 for my Windows 7PC 并将内容解压到一个目录中 我编写了一个小型测试程序来进行基准测试 import
  • 有关电话号码的信息

    node js 是否有任何库可以接收电话号码 任何格式 将其转换为默认格式 并告诉我有关该号码的信息 例如 国家 地区 城市等 我不知道 我也搜索过npm 注册表 http search npmjs org 谷歌有库电话号码 http co
  • 如何将左右系统键发送到SendKeys.Send()?

    我主要研究了几个选项 Sendkeys Send 用于右 alt 键 有什么替代方案吗 https stackoverflow com questions 9330498 sendkeys send for right alt key an
  • 我想在所有内容图像上应用 css class(bootstrap) .img-responsive

    我正在 bootstrap 的帮助下开发一个 Wordpress 主题 因此我手动将案例应用于所有内容图像 如下所示 img src images logo 03 png class img responsive 有没有办法自动应用相同的类
  • std::function 复制参数?

    My code include
  • C++中如何设计一个可以容纳任意类型函数的容器?

    我希望服务器支持注册任何功能 可能是这样的 server register Add int a int b cout lt lt a b lt lt endl server register Echo string str cout lt
  • 通过 Facebook 分享 Android 果冻豆的意图

    我想通过 Facebook 分享 Android jelly bean 的一些图像和文本 它适用于除 Android 果冻豆之外的所有设备 任何人请帮助我如何解决这个问题 my code Intent shareIntent new Int
  • ASPX 页面中“当前上下文中不存在该名称”

    我看过类似的问题 1 https stackoverflow com questions 706603 the name controlname does not exist in the current context 2 https s
  • URL 的编码参数

    我有一个正在构建 URL 的 Silverlight 应用程序 此 URL 是对基于 REST 的服务的调用 该服务需要一个代表位置的参数 位置的形式为 城市 州 为了构建此 URL 我调用以下代码 string url http www
  • AutoMapper 在映射子对象时传递父引用

    我正在尝试使用 AutoMapper 将从 Web 服务接收到的一些 DTO 数据契约 对象映射到我的业务对象中 根 DTO 对象包含子对象的集合 我的业务对象还有一个子业务对象的子集合 为了让 AutoMapper 工作 我必须在业务对象
  • 浏览器对 CSS :first-child 和 :last-child 的支持

    有谁知道哪些浏览器 版本支持它们 使用它们是否安全 或者我应该诉诸 PHP javascript 来生成第一个 最后一个类 first child and last child http www quirksmode org css fir
  • PHP 5.3 中自动加载命名空间?

    如何在 PHP 5 3 中使用 autoload 和命名空间 我在与脚本分开的命名空间中有一个主要的自动加载函数 我还调用具有不同名称空间的类 这并不奇怪 但是 它没有找到自动加载功能 我是否必须为每个命名空间重新创建自动加载函数 这似乎不
  • “Office 2010 加载项:图标库” - 如何从后台选项卡中提取图标 (docx)

    我下载了 Office 2010 加载项 图标库 https www microsoft com en in download confirmation aspx id 21103 这是一个 docx 文件 有两个包含图标的后台选项卡 如何
  • 在c#中将bool表达式转换为char

    当我遇到如下问题时 我通过了 NET 测验 Char ch Convert ToChar a e c a 在控制台中我们可以看到输出ch变量是g 有人可以描述发生了什么吗 谢谢 是二元或运算符 a binary representation
  • 将重复值复制粘贴到大型 Excel 文件的列中

    我遇到了一个问题 希望得到一些帮助 这是我现在正在处理的内容 我想要的是 B C 和 D 列复制到其下面的空白行 直到它到达新客户端 如下所示 非常感谢任何和所有的帮助 Thanks 非VBA解决方案 Select entire range
  • 使用 jQuery 按住 Shift + 鼠标悬停

    我试图检测当光标移动到特定元素上时是否按下了 Shift 键 该函数会触发 但仅after我首先单击另一个元素 有什么方法可以解决这个问题吗 我尝试将焦点设置为文档和元素 并尝试创建伪单击功能 但到目前为止没有任何效果 例如 以下代码仅在我
  • OpenCL clGetPlatformIDs 异常

    我使用此包安装附带的示例中的 HelloWorld 示例 AMD 套件 http developer amd com tools and sdks heterogeneous computing amd accelerated parall
  • SQL 调用临时表中的最大行数

    在临时表中只有两列可用 我想获取每次加载的最新ID 如下图所示 我已经尝试过 但它没有给我我需要的答案 select max rn plus 1 a load a id from select a load a id ROW NUMBER