sql中使用rownum删除重复记录

2023-12-01

请帮助我知道根据 rownum 删除记录,即使 id 重复也不会发生,但如果是这样的话。

select rownum,a.* from a;

    ROWNUM         ID NAME
---------- ---------- ----------
         1          1 leo_1
         2          2 leo_2
         3          3 leo_3
         4          1 leo_1
         5          2 leo_2
         6          3 leo_3

已尝试查询,但删除了所有 6 行。

DELETE FROM a
WHERE rownum not in
(SELECT MIN(rownum)
FROM a
GROUP BY name);

但这个查询给出了正确的结果:

SELECT MIN(rownum)
FROM a
GROUP BY name

    ROWNUM
----------
         1
         2
         3

预期结果 :

    ROWNUM         ID NAME
---------- ---------- ----------
         4          1 leo_1
         5          2 leo_2
         6          3 leo_3

Use the rowid

DELETE FROM table_name a
 WHERE EXISTS( SELECT 1
                 FROM table_name b
                WHERE a.id = b.id
                  AND a.name = b.name
                  AND a.rowid > b.rowid )

当然,你可以这样做a.rowid < b.rowid以及。这rowid只是该行的物理地址,因此删除具有较大或较小地址的行并不重要。

但是,您的预期结果没有意义。

Expected Result :

        ROWNUM         ID NAME
    ---------- ---------- ----------
             4          1 leo_1
             5          2 leo_2
             6          3 leo_3

The rownum结果集的值总是在查询时分配。这意味着特定行可能会以不同的方式出现rownum不同查询中的值(或多次运行同一查询时)。rownum总是连续的,所以你永远不可能有一个rownum结果集中有 4 个,但也没有rownum同一结果集中的 1、2 和 3 的值。无论您删除哪一个重复行,您的结果都将是

预期结果 :

    ROWNUM         ID NAME
---------- ---------- ----------
         1          1 leo_1
         2          2 leo_2
         3          3 leo_3

But the rownum值是任意的。 Oracle 返回同样有效

预期结果 :

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

sql中使用rownum删除重复记录 的相关文章

  • 删除原始数据中部分重复的记录

    我需要删除表中时间间隔为 1 或 2 分钟或相同且必须相同的所有记录ID但保留第一个记录 ID Time SN SD WE FW 10 2014 06 30 19 17 37 000 I 0 100 0 10 2014 06 30 19 1
  • 为什么我们不能有多个主键?

    我知道表中不能有超过 1 个主键 但技术原因是什么 直接拉取自SO https stackoverflow com questions 217945 can i have multiple primary keys in a single
  • 从多个表中选择 - 一对多关系

    我有这样的表 表产品 身份证 姓名 表格图像 产品 ID 网址 订单号 表价 产品 ID 组合 货币 价格 表数量 产品 ID 组合 数量 表 Product 与其他表是一对多关系 我需要查询表并得到类似这样的结果 伪数组 ProductI
  • SQL:比较不同表中的两个计数

    我有 3 张桌子 一张桌子上有世界上每个国家及其代币 NAME CODE Afghanistan AFG Albania AL Algeria DZ American Samoa AMSA Andorra AND Angola ANG An
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • Oracle 获取列值发生变化的行

    假设我有一张桌子 比如 ID CCTR DATE 1 2C 8 1 2018 2 2C 7 2 2018 3 2C 5 4 2017 4 2B 3 2 2017 5 2B 1 1 2017 6 UC 11 23 2016 还有其他字段 但我
  • 我可以从匿名 PL/SQL 块向 PHP 返回值吗?

    我正在使用 PHP 和 OCI8 执行匿名 Oracle PL SQL 代码块 有没有什么方法可以让我绑定一个变量并在块完成后获取其输出 就像我以类似的方式调用存储过程时一样 SQL declare something varchar2 I
  • 基于列顺序的查询速度

    数据库中列类型的顺序对查询时间有影响吗 例如 具有混合排序 INT TEXT VARCHAR INT TEXT 的表的查询速度是否会比具有连续类型 INT INT VARCHAR TEXT TEXT 的表慢 答案是肯定的 这确实很重要 而且
  • 如何在新的数据库服务器上导入 Oracle 11g RMAN 备份集?

    我有一个使用 RMAN 创建的 Oracle 11g 数据库的备份集 现在我想将备份集导入 恢复到新的空数据库服务器上 我知道创建备份集的命令是 run backup as compressed backupset database tag
  • SQL Server PIVOT 函数

    我有一个检索所有代理及其模块的查询 结果集将每个模块返回 1 行 SELECT am agentID AS agentid pa agentDisplayName agentdisplayname m ModuleName ModuleNa
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • SQL - 为每条记录调用存储过程

    我正在寻找一种方法来为 select 语句的每条记录调用存储过程 SELECT SomeIds SELECT spro Id FROM SomeTable as spro INNER JOIN Address addr ON addr Id
  • 在 Postgres 中的数组字段上应用聚合函数?

    是否可以对整数 字段 或其他数字数组 中的所有值应用聚合 如 avg stddev CREATE TABLE widget measurement integer insert into widget measurement values
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 将多行合并为一行并根据行数附加列

    我正在尝试将同一个表的多行合并为一个 我有一个像这样的示例表 Col1 Col2 Col3 Col4 Col5 Col6 1 BH1 CB 12 CC CC Conveyor Mal 1 BH1 CB 104 ZC ZC Full Emp
  • 外键引用多个表

    我有4张桌子 A ida name B ida B specific stuff C ida C specific stuff D ida D specific stuff 我希望另一个表 E 可以仅引用 B 或 C 而不是 D 我可以在其
  • 累计非重复计数

    我正在查询每天获取 uid 的累计不同计数 示例 假设有 2 个 uid 100 200 出现在日期 2016 11 01 并且它们也在第二天出现 新的 uid 300 100 200 300 出现在 2016 11 02 此时我希望商店累
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B

随机推荐

  • 如何请求 gzipped/压缩的 SOAP 响应?

    我使用 wsimport 工具创建了一个运行良好的肥皂客户端 现在我喜欢从服务器请求压缩响应 因为响应可能非常大 我不知道服务器是否能够发送压缩内容 据我所知 我必须在请求中添加类似 Accept Encoding gzip 的内容 我该如
  • Copy-Item 使用凭据将文件从本地复制到远程服务器

    我正在尝试将一些文件和文件夹从本地计算机复制到远程服务器 Copy Item copy test txt destination serverip c backups 但我收到错误 Copy Item Logon failure unkno
  • 使用 PHP 检查图像是否唯一的好方法是什么?

    使用 PHP 检查图像是否唯一的最佳方法是什么 假设我有一个大约 30 张图像 大约 500 500 像素 的目录 并且有人上传了另一张图片 有什么好方法来检查上传的图像是否不在该目录中 是否有某种方法可以创建可以轻松比较的图像哈希 然后
  • 如何使用 JavaScript 将所有 HTML 子元素移动到另一个父元素?

    Imagine div span Foo span b Bar b Hello World div div div 可以编写什么 JavaScript 来移动所有子节点 元素和文本节点 old parent to new parent没有
  • RouterModule.forRoot(ROUTES) 与 RouterModule.forChild(ROUTES)

    这两者之间有什么区别 各自的用例是什么 The docs并不完全有帮助 forRoot 创建一个包含所有指令的模块 给定的 路由 以及路由器服务本身 forChild 创建一个模块 包含所有指令和给定的路由 但不包括 路由器服务 我模糊的猜
  • 将复选框选择传递给操作

    我有一堆复选框 用于让用户指定他们想要在网格上看到哪些列 目前 每个复选框都有自己的键 本质上是它的标签名称 并且在我看来是这样声明的 Html CheckBox column Key Request Form column Key nul
  • 连接到远程我的 Sql 显示用户 [电子邮件受保护] 的访问被拒绝(使用密码:是)

    一切工作正常 当我配置TMySqlConnection使用 WAMP 本地服务器在本地计算机上连接的驱动程序 但在尝试配置驱动程序以连接到远程 MySQL 服务器时 出现错误 用户访问被拒绝 电子邮件受保护 使用密码 是 如何解决该问题并强
  • 是否有任何 Redis 客户端(Java 首选)支持 Redis 集群上的事务?

    我在网上仔细查找 但找不到提供此功能的成熟 Redis 客户端 只找到这个project 有人知道 Redis 客户端提供上述功能吗 谢谢 Redis 集群中的事务与 Redis Standalone 中的事务是不同的 TL DR 这更多的
  • jQuery 的 mouseout() 和 mouseleave() 有什么区别?

    jQuery 的 mouseout 和 mouseleave 有什么区别 mouseleave 事件与 mouseout 事件的不同之处在于它处理事件冒泡的方式 如果本例中使用了 mouseout 那么当鼠标指针移出 Inner 元素时 就
  • 使用 Inno Setup 安装 IIS

    我正在尝试使用 Inno Setup 安装 IIS 但遇到各种错误 我在 DOS 上尝试了命令并且有效 start w pkgmgr iu IIS WebServerRole IIS WebServer IIS CommonHttpFeat
  • 如何将json转换为数据表?

    有谁知道如何将 json 字符串从 asp net 转换为 DataTable 吗 我开始了解反序列化 它需要类 我只想返回数据表 谁能告诉我如何将其转换为数据表 假设您的 JSON 字符串是一个对象列表 每个对象将对应于 DataTabl
  • 如何在 Java 中解析和验证 WebSocket 帧?

    我用Java编写了一个WebSocket帧解码器 private byte decodeFrame byte rawIn int maskIndex 2 byte maskBytes new byte 4 if rawIn 1 byte 1
  • 在 Matlab 中获取神经网络的神经元权重

    I have trained a Neural Network as shown below net b返回两个值 lt 25x1 double gt 0 124136217326482 net IW返回两个值 lt 25x16 doubl
  • Laravel Request::all() 不应静态调用

    在 Laravel 中 我正在尝试调用 input Request all on a store 方法在我的控制器中 但出现以下错误 非静态方法Illuminate Http Request all 不应静态调用 假设 this来自不兼容的
  • 如何清除IOS应用程序库缓存(下载的图像)

    我正在处理下载异步图像 我从网络服务器获取了很多图像 但所有图像都是临时的 我不会缓存任何图像 但该应用程序显然将下载图像保存在 Library Caches 中 我该如何解决这个问题 有什么办法可以防止缓存下载的图像吗 或者从缓存中删除它
  • Java 调整图像大小

    我在调整图像大小时遇到 一个奇怪的问题 并且无法弄清楚我做错了什么 我读过很多帖子 其中的代码基本上与我相同 我使用java库Scalr File image new File myimage png File smallImage new
  • Android 中的 ColorPicker 不工作

    我制作了一个简单的绘图android程序用于学习 我放置了一个颜色对话框 在选择任何颜色后都可以正确显示 笔颜色没有改变 它仍然保持 黑色 默认颜色 我尝试如下 请帮助我 我的代码如下 主程序 java package com exampl
  • 在 JAX-RS 响应中使用 ISO-8601 日期

    我正在 GlassFish 4 上使用 Java EE 7 构建 RESTful Web 服务 当序列化包含以下内容的 POJO 时java util Date对象 不包括时区信息 我如何自定义对象序列化java util Date是否包含
  • 这是循环的有效实现吗?

    似乎每个涉及 R 循环的问题都会遇到 循环很糟糕 和 你做错了 以及使用建议list or tapply或者诸如此类的 我正在学习 R 并实现了以下循环来为每个因子级别创建图像文件 每次运行时因子级别的数量都会发生变化 for i in u
  • sql中使用rownum删除重复记录

    请帮助我知道根据 rownum 删除记录 即使 id 重复也不会发生 但如果是这样的话 select rownum a from a ROWNUM ID NAME 1 1 leo 1 2 2 leo 2 3 3 leo 3 4 1 leo