广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >oracle数据库去除重复数据常用的方法总结
  • 216
分享到

oracle数据库去除重复数据常用的方法总结

2024-04-02 19:04:59 216人浏览 八月长安
摘要

目录创建测试数据针对指定列,查出去重后的结果集distinctrow_number()针对指定列,查出所有重复的行count havingcount over删除所有重复的

创建测试数据

create table nayi224_180824(col_1 varchar2(10), col_2 varchar2(10), col_3 varchar2(10));
insert into nayi224_180824
select 1, 2, 3 from dual uNIOn all
select 1, 2, 3 from dual union all
select 5, 2, 3 from dual union all
select 10, 20, 30 from dual ;
commit;
select*from nayi224_180824;
COL_1COL_2COL_3
123
123
523
102030

针对指定列,查出去重后的结果集

distinct

select distinct t1.* from nayi224_180824 t1;
COL_1COL_2COL_3
102030
123
523

方法局限性很大,因为它只能对全部查询的列做去重。如果我想对col_2,col3去重,那我的结果集中就只能有col_2,col_3列,而不能有col_1列。

select distinct t1.col_2, col_3 from nayi224_180824 t1
COL_2COL_3
23
2030

不过它也是最简单易懂的写法。

row_number()

select *
  from (select t1.*,
               row_number() over(partition by t1.col_2, t1.col_3 order by 1) rn
          from nayi224_180824 t1) t1
 where t1.rn = 1
;
COL_1COL_2COL_3RN
1231
1020301

写法上要麻烦不少,但是有更大的灵活性。

针对指定列,查出所有重复的行

count having

select *
  from nayi224_180824 t
 where (t.col_2, t.col_3) in (select t1.col_2, t1.col_3
                                from nayi224_180824 t1
                               group by t1.col_2, t1.col_3
                              having count(1) > 1)
COL_1COL_2COL_3
123
123
523

要查两次表,效率会比较低。不推荐。

count over

select *
  from (select t1.*,
               count(1) over(partition by t1.col_2, t1.col_3) rn
          from nayi224_180824 t1) t1
 where t1.rn > 1
;
COL_1COL_2COL_3RN
1233
1233
5233

只需要查一次表,推荐。

删除所有重复的行

delete from nayi224_180824 t
 where t.rowid in (
                   select rid
                     from (select t1.rowid rid,
                                   count(1) over(partition by t1.col_2, t1.col_3) rn
                              from nayi224_180824 t1) t1
                    where t1.rn > 1);

就是上面的语句稍作修改。

删除重复数据并保留一条

分析函数法

delete from nayi224_180824 t
 where t.rowid in (select rid
                     from (select t1.rowid rid,
                                  row_number() over(partition by t1.col_2, t1.col_3 order by 1) rn
                             from nayi224_180824 t1) t1
                    where t1.rn > 1);

拥有分析函数一贯的灵活性高的特点。可以为所欲为的分组,并通过改变orderby从句来达到像”保留最大id“这样的要求。

group by

delete from nayi224_180824 t
 where t.rowid not in
       (select max(rowid) from nayi224_180824 t1 group by t1.col_2, t1.col_3);

牺牲了一部分灵活性,换来了更高的效率。

总结

到此这篇关于oracle数据库去除重复数据常用的文章就介绍到这了,更多相关oracle去除重复数据内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: oracle数据库去除重复数据常用的方法总结

本文链接: https://www.lsjlt.com/news/149268.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle数据库去除重复数据常用的方法总结
    目录创建测试数据针对指定列,查出去重后的结果集distinctrow_number()针对指定列,查出所有重复的行count havingcount over删除所有重复的...
    99+
    2022-11-13
  • mysql数据库去除重复数据的方法
    这篇文章主要介绍了mysql数据库去除重复数据的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql数据库去除重复数据的方法:1、查询需...
    99+
    2022-10-18
  • SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
    目录方法1:distinct方法2:group by方法3:窗口函数使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析。 以某电商公司的销售报表为例,常见的去重方法我们用到dis...
    99+
    2023-05-05
    sql去除重复数据 sql去重复
  • php数据库去除重复数据的方法是什么
    本篇内容介绍了“php数据库去除重复数据的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php数据库去除重复数据的方法:1、打开相...
    99+
    2023-06-25
  • 常用oracle数据库函数总结
    wm_concat的基本语法    select proj_id,max(scale_valus) as scale_valus  &n...
    99+
    2022-10-18
  • mysql查找删除表中重复数据方法总结
    在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下。 先看下我们的表数据,有一些数据是重复的。 要查找重复数据,我们可以使用mysql里...
    99+
    2022-10-18
  • 删除数据库中重复数据的方法
    这篇文章主要介绍“删除数据库中重复数据的方法”,在日常操作中,相信很多人在删除数据库中重复数据的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”删除数据库中重复数据的方法”...
    99+
    2022-10-18
  • php合并数组去除重复数据的方法
    这篇文章主要讲解了“php合并数组去除重复数据的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php合并数组去除重复数据的方法”吧!在php中,可以利用array_merge()和arr...
    99+
    2023-06-20
  • python去除重复数据的方法是什么
    Python中去除重复数据的方法有多种,下面是其中两种常见的方法:1. 使用集合(set)去除重复数据:将数据转换为集合类型,集合具...
    99+
    2023-08-09
    python
  • 总结php去除字符串重复部分的几种常见方法
    在PHP编程中,我们经常需要去除字符串中的重复部分。这种需求在数据处理和字符串匹配方面非常常见。本文将介绍几种常见的方法来去除字符串中的重复部分。一、使用函数array_unique()函数array_unique()是PHP中最简单和最快...
    99+
    2023-05-14
  • Oracle表中重复数据去重的方法实例详解
    Oracle表中重复数据去重的方法实例详解 我们在项目中肯定会遇到一种情况,就是表中没有主键 有重复数据 或者有主键 但是部分字段有重复数据 而我们需要过滤掉重复数据 下面是一种解决方法 del...
    99+
    2022-10-18
  • 总结php中常用的数据库删除语句
    PHP中常用的数据库删除语句有很多种,本文将简单介绍一下常用的几种方法。DELETE语句DELETE语句是PHP中最常用的数据库删除语句之一。它可以删除表中的一行或多行数据。删除数据时,需要先选择要删除的表,然后使用DELETE语句...
    99+
    2023-05-14
  • vue中数组怎么去除重复数据(三种方法)
    在Vue的开发过程中,我们经常会使用到数组。但是在实际开发中,有时候会遇到重复数据的问题,这时候我们就需要对数组进行去重操作。本文将为大家介绍Vue中数组去重的方法。一、使用set结构去重set是ES6中的一种数据结构,可以去除重复元素,其...
    99+
    2023-05-14
  • C#连接Oracle数据库的多种方法总结
    目录C# 连接oracle数据库常用的三种方法有三种:Oracle.ManagedDataAccess.Client.dll总结C# 连接oracle数据库常用的三种方法有三种: 一...
    99+
    2023-05-17
    c#连接oracle数据库 c连接oracle数据库 c#Oracle读取数据库
  • SQL删除重复数据的方法
    这篇文章将为大家详细讲解有关SQL删除重复数据的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在sql中,可以使用select语句删除重复数据,语法为:“s...
    99+
    2022-10-18
  • MySQL删除重复数据的方法
    这篇文章主要介绍MySQL删除重复数据的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近在做一个批量数据导入到MySQL数据库的功能,从批量导入就可以知道,这样的数据在插入数据...
    99+
    2022-10-18
  • Oracle恢复删除数据的方法
    Oracle数据库提供了以下几种方法来恢复删除的数据:1. 通过闪回技术(Flashback Technology):Oracle提...
    99+
    2023-09-01
    Oracle
  • mysql删除数据库中重复记录的方法
    这篇文章给大家分享的是有关mysql删除数据库中重复记录的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql删除数据库中重复记录的步骤:1、统计重复数据;2、使用“SE...
    99+
    2022-10-18
  • 北亚案例:oracle数据库误删除数据的恢复方法
    学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失。当我在工作中真正遇到这些问题时,我开始寻找答案。今天主要以oracle数据库为例,介...
    99+
    2022-10-18
  • Postgresql删除数据库表中重复数据的几种方法详解
    一直使用PostgreSQL数据库,有一张表是这样的: DROP TABLE IF EXISTS "public"."devicedata"; CREATE TABLE "public"."devicedata"...
    99+
    2022-10-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作