精华内容
下载资源
问答
  • 快速删除重复数据

    2020-08-16 13:50:35
    实例需求:在如下图的数据记录表中删除重复数据行。 每行数据包含5个数据 每行数据都是无序排列 如果两行中全部数据元素都相同,那么视为重复数据,例如第4行,第7行,第10行 对于重复数据至保留首次出现的数据行

    实例需求:在如下图的数据记录表中删除重复数据行。

    • 每行数据包含5个数据
    • 每行数据都是无序排列
    • 如果两行中全部数据元素都相同,那么视为重复数据,例如第4行,第7行,第10行
    • 对于重复数据只保留首次出现的数据行

    在这里插入图片描述
    于是数据是无序排列的,那么对比两个数据行中的数据就比较麻烦,当然可以采用多重循环,但是效率会比较差,因此这里借助JavaScript实现数组排序,将每行中的5个数据排序,然后再进行对比。

    排序代码如下:

    Function JSSortNum(ByVal strNum As String)
        Set objJS = CreateObject("msscriptcontrol.scriptcontrol")
        objJS.Language = "javascript"
        objJS.addcode "function sortarr(para){arr=para.split(',');arr.sort(function cmp(a,b){return a-b;});return arr;}"
        JSSortNum = objJS.eval("sortarr('" & strNum & "')")
    End Function
    

    排序代码解释请参考: 数组排序系列(4)

    示例代码如下:

    Sub Demo()
        Dim rngRes As Range, objDic, arr, i, j, sNum, sKey
        Set objDic = CreateObject("scripting.dictionary")
        arr = [a1].CurrentRegion.Value
        For i = 1 To UBound(arr)
            sNum = ""
            For j = 1 To 5
                sNum = sNum & "," & arr(i, j)
            Next
            sKey = JSSortNum(Mid(sNum, 2))
            'Debug.Print sNum, sKey
            If Not objDic.exists(sKey) Then
                objDic(sKey) = i
            Else
                If rngRes Is Nothing Then
                    Set rngRes = Cells(i, "C").Resize(1, 5)
                Else
                    Set rngRes = Union(rngRes, Cells(i, "C").Resize(1, 5))
                End If
            End If
        Next
        If Not rngRes Is Nothing Then
            'rngRes.Interior.Color = vbYellow
            rngRes.EntireRow.Delete
        End If
    End Sub
    
    

    【代码解析】
    第2行代码创建字典对象。
    第3行代码将数据加载到数组中。
    第5~21行代码序号处理数据。
    第7~9行代码将一行中的5个数据组合为字符串。
    第10行代码调用JSSortNum函数进行排序。
    第12行代码判断排序后的字符串是否存在于字典对象中。
    如果不存在,则第13行代码将字符串添加到字典对象中。
    如果存在,那么当前数据行为重复数据,第15~19行代码将对应的数据行单元格区域保存在rngRes变量中。
    如果rngRes变量不为空,那么第24行代码将删除一次性删除确保重复数据行。

    由于循环过程需要多次调用JSSortNum函数,因此如果将其中的CreateObject代码行移到主过程中,并将JavaScript对象作为参数传递,那么将避免多次创建JavaScript对象,整个代码运行效率更高。


    运行示例代码Demo,将删除黄色的重复数据行。

    展开全文
  • 如何在Excel2021中快速删除重复数据项.docx
  • 1、首先打开如下文档,在A列删除重复日期星期一,星期二; 2、选中编号栏,A1-A10,如下图: 3、点击数据——删除重复项;如下图红色剪头所指: 4、删除后,重复项就被删除成功。 转载于:...

    1、首先打开如下文档,在A列删除重复日期星期一,星期二;

    2、选中编号栏,A1-10,如下图:

    3、点击数据——删除重复项;如下图红色剪头所指:

    4、删除后,重复项就被删除成功。

     

    转载于:https://www.cnblogs.com/xylw1991/p/10985549.html

    展开全文
  • 一、对于部分字段重复数据删除先来谈谈怎么查询重复的数据吧。下面语句能查询出那些数据是重复的:select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1将上面的>号改为=号就能查询出...

    我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,怎么对重复的数据进行删除呢?
    重复的数据可能有这样两种情况,第一种时表中只有某些字段相同,第二种是两行记录完全相同。

    一、对于部分字段重复数据的删除
    先来谈谈怎么查询重复的数据吧。
    下面语句能查询出那些数据是重复的:
    select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1
    将上面的>号改为=号就能查询出没有重复的数据了。
    想要删除这些重复的数据,能使用下面语句进行删除
    delete from 表名 a where 字段1,字段2 in
    (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)
    上面的语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。所以我建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。如下:
    CREATE TABLE 临时表 AS
    (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)
    上面这句话就是建立了临时表,并将查询到的数据插入其中。
    下面就能进行这样的删除操作了:
    delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);
    这种先建临时表再进行删除的操作要比直接用一条语句进行删除要高效得多。

    这个时候,大家可能会跳出来说,什么?你叫我们执行这种语句,那不是把所有重复的全都删除吗?而我们想保留重复数据中最新的一条记录啊!大家不要急,下面我就讲一下怎么进行这种操作。
    在oracle中,有个隐藏了自动rowid,里面给每条记录一个唯一的rowid,我们如果想保留最新的一条记录,
    我们就能利用这个字段,保留重复数据中rowid最大的一条记录就能了。
    下面是查询重复数据的一个例子:
    select a.rowid,a.* from 表名 a
    where a.rowid !=
    (
    select max(b.rowid) from 表名 b
    where a.字段1 = b.字段1 and
    a.字段2 = b.字段2
    )
    下面我就来讲解一下,上面括号中的语句是查询出重复数据中rowid最大的一条记录。
    而外面就是查询出除了rowid最大之外的其他重复的数据了。
    由此,我们要删除重复数据,只保留最新的一条数据,就能这样写了:
    delete from 表名 a
    where a.rowid !=
    (
    select max(b.rowid) from 表名 b
    where a.字段1 = b.字段1 and
    a.字段2 = b.字段2
    )

    随便说一下,上面语句的执行效率是非常低的,能考虑建立临时表,讲需要判断重复的字段、rowid插入临时表中,然后删除的时候在进行比较。
    create table 临时表 as
    select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;
    delete from 表名 a
    where a.rowid !=
    (
    select b.dataid from 临时表 b
    where a.字段1 = b.字段1 and
    a.字段2 = b.字段2
    );
    commit;

    二、对于完全重复记录的删除

    对于表中两行记录完全相同的情况,能用下面语句获取到去掉重复数据后的记录:
    select distinct * from 表名
    能将查询的记录放到临时表中,然后再将原来的表记录删除,最后将临时表的数据导回原来的表中。如下:
    CREATE TABLE 临时表 AS (select distinct * from 表名);
    drop table 正式表;
    insert into 正式表 (select * from 临时表);
    drop table 临时表;

    如果想删除一个表的重复数据,能先建一个临时表,将去掉重复数据后的数据导入到临时表,然后在从
    临时表将数据导入正式表中,如下:
    INSERT INTO t_table_bak
    select distinct * from t_table;

     

     

     

    补充:朋友的做法

    delete from people
    where peopleId in (select   peopleId from people group by   peopleId   having count(peopleId) > 1)
    and rowid not in (select min(rowid) from   people group by peopleId having count(peopleId )>1)

    也可以这样写

    delete from people

    where rowid in (select max(rowid) from people group by peopleid having count(peopleid) > 1);

    展开全文
  • 我在遇到这样的问题后上网搜索得出了一个快速找出Excel重复数据并删除的方法,在此也和大家分享下快速删除Excel重复数据的具体操作方法,避免大家也出现类似的问题,更好的提高工作效率。
    
    SEO工作中,外链起到至关重要的作用。在我们整理外链资源时都会选择用EXCEL表格来保存数据。在数据特别多的情况下,操作的过程中难免都会输入重复,给我们带来工作上不便和降低工作效率。我在遇到这样的问题后上网搜索得出了一个快速找出Excel重复数据并删除的方法,在此也和大家分享下快速删除Excel重复数据的具体操作方法,避免大家也出现类似的问题,更好的提高工作效率。

    步骤/方法

    1. 如下图所示,第2行和第7行,第3行和第6行内容完全相同:
      快速删除Excel重复数据
    2. 选中表中的所有记录(注意,此时应将每列的标题行也选择上,否则筛选完的数据表中将不再包含有该标题行)
      快速删除Excel重复数据
    3. 执行“数据”菜单→“筛选→高级筛选”命令;
      快速删除Excel重复数据
    4. 在弹出的“高级筛选”对话框中选择“将筛选结果复制到其他位置”一项,并点击“复制到”选择框后面的范围按钮来选择一块区域以存放筛选后的数据(注意:此处千万不要与原数据所处的单元格相重合,否则数据表将会混乱)
      快速删除Excel重复数据
    5. 最后,勾选“选择不重复的记录”复选框后,点击“确定”按钮即可。
      快速删除Excel重复数据
    展开全文
  • 也就是说,不能把所有的记录都删除,而且必须快速的把重复记录删掉。 对此,总结了一下删除重复记录的方法,以及每种方法的优缺点。 为了陈诉方便,假设表名为Tbl,表中有三列col1,col2,col3,其中col1,col2是...
  • 快速检索 轻松查找删除重复数据.docx
  • 快速检索 轻松查找删除重复数据_1.docx
  • ORACLE快速插入一千万初始数据和删除重复数据
  • 如果一张表的数据达到上百万条,用游标的方法来删除简直是个噩梦,因为它会执行相当长的一段时间……开发人员的噩梦——删除重复记录想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会...
  • baidu\google了一下,最快的办法是创建一个临时表,如何将数据拷入。再删除。 有没有更加快的办法。 8000万条数据左右。
  • oracle 快速移动数据和删除重复数据但保留其中一条数据
  • 利用低能协处理器的快速重复数据删除系统,马良,甄彩君,重复数据删除是当前备份技术研究的一个热点。在之前的研究中,人们主要关注元数据的组织以及磁盘性能优化的问题,通过减少磁盘的
  • AE:一种用于带宽快速高效重复数据删除的非对称极值内容定义分块算法
  • 当我们录入或者处理大量数据时,难免会...可以看到重复项都被标注成了红色,接下来就可以处理这些重复数据。利用数据透视表找出重复项打开数据表,选中所有数据,在“插入”菜单中找到“数据透视表”,点击即可建...
  • Dupe krill-快速文件重复数据删除器用硬链接替换具有相同内容的文件,因此所有副本的文件数据仅存储一次,Dupe krill-快速文件重复数据删除器用硬链接替换具有相同内容的文件。副本仅存储一次,从而节省了磁盘空间。...
  • Oracle删除表中重复数据有多种方法,网上较多的一种如下: delete from gljyjl jl where (jl.djbbh,jl.bgsbh) in (select djbbh,bgsbh from gljyjl group by djbbh,bgsbh having count(*) > 1) and rowid not in ...
  • 主要介绍了Android List删除重复数据的实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
  • mysql如何快速删除重复数据

    千次阅读 2015-08-28 14:50:48
    在mysql中去重,其实是一个很简单的事情,来看下面的例子: mysql> DROP TABLE test; Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE test  (  id INT, ...Query OK, 0 rows
  • Excel怎样查找删除重复数据     由于重复输入或粘贴等原因,Excel 2007工作表往往存在重复的数据或记录。如果工作表的规模比较大,手工查找和删除重复数据很难做到“完全彻底”。不过这个问题对Excel ...
  • Linux系统操作中,如果文件中的数据过多,想要删除重复数据行是非常麻烦的,查找不方便,那么有什么方法能够快速删除文件重复数据行呢?下面小编就给大家介绍下如何删除文件重复数据行,一起来看看吧。...
  • 更快地重复数据删除文件(快速模式): dduper还具有--fast-mode选项,该选项告诉内核跳过验证阶段并直接调用克隆。 由于从不读取文件内容,因此此模式速度更快。 dduper依赖于btrfs csum-tree维护的文件csum。 要...
  • SQL去除重复数据

    千次阅读 2017-11-22 14:37:48
    在SQL查询中,需要去除重复选项,并且按照时间来进行排序,取排序分组中第一条数据。然后在网上找到了解决方案,使用分析函数row_number() over (partiion by … order by …)来进行分组编号,然后取分组标号值为1的...
  • 快速删除查询重复数据 利用物理id的唯一性 ---- 找出 相同数据 不可能有名字相同,岗位相同的人在同一个部门 select a.* from EMPLOYEES a -- 找出重复数据 where a.rowid !=(
  • 网上说的基本上都是不靠谱的,要么每次执行只能删一条重复数据(如果重复1000次是不是准备执行1000次?),要么是速度慢的要死(删除时用in导致索引失效)。 我的方法是用存储过程:首先查询出所有重复的Id,然后循环...
  • 以下是4种快速帮助您查找重复数据的方法.在许多情况下,我们需要删除Excel表中的某些相同数据. 但是,仅通过眼睛来发现它们就很难区分两列细胞,这非常麻烦. 以下是4种快速帮助您查找重复数据的方法.让我们以下表中...
  • 小编这里将为大家带来的是在Excel中巧妙提示重复输入和删除重复数据的方法技巧,很多上班族们在使用Excel来处理大量数据的时,常常会遇到重复输入数据的问题,很多时候尽管我们很认真的检查核对还是难免会出错,因此...
  • MySQL删除重复数据

    2020-04-07 17:19:57
    MySQL删除重复数据一 述求背景二 SQL 一 述求背景 快速删除表中重复的数据, 只保留一条数据。 比如我的表t_table, 有自增id,有特殊场景filed_name1, 只有此场景下数据被重复了,因此需要针对这部分数据进行处理 ...
  • 转自:... –根据指定的列,快速查询重复数据 SELECT * FROM TABLE_NAME WHERE (COL_NAME_1, COL_NAME_2,,,COL_NAME_N) IN ( SELECT COL_NAME_1, COL_NAME_2,,,COL_NAME_N FROM TABLE_NAME GROUP ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 236,808
精华内容 94,723
关键字:

怎样快速删除重复数据