zoukankan      html  css  js  c++  java
  • 使用sql语句删除数据库中重复的数据

    在数据库中有一批数据,但是由于数据入库之前某些不当的操作引入了一些重复的数据,需要将这些重复的数据删除。数据的结构大概是下面的样子

    CREATE TABLE [dbo].[aaa](
        [id] [int] IDENTITY(1,1) NOT NULL,
        [fileName] [varchar](50) NULL,
        [fileSize] [int] NULL,
     CONSTRAINT [PK_aaa] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    ) 
    )
    

    其中fileName和FileSize重复的时候表示数据重复

    按照fileName和fileSize进行分组
    select fileSize,fileName from tb group by filesize,filename
    
    找出最大的那条记录的id

    上面的语句变成

    select fileSize,fileName ,max(id) from tb group by filesize,filename
    
    查找所有的id
    select id from 
        (select fileSize,fileName ,max(id) id from tb group by filesize,filename ) a
    
    删除重复的数据
    delete from tb where id not in ( 
        select id from 
             (select fileSize,fileName ,max(id) id from tb group by filesize,filename ) a
    )
    

    现在完成了重复数据的删除,主要是利用了找出某个分组中最大的那个id,其中包括了所有不重复的id,然后使用not in将需要保留的排除。

  • 相关阅读:
    python错误信息 object is not subscriptable 的原因
    python join函数
    string的部分总结
    第k个非立方数(忘记哪里的题了)
    pandas 学习
    数学建模中 时间序列典型分解模型 matlab实现
    matlab三维画图学习 三次插值
    原型
    JavaScript
    js数组去重(多种写法)
  • 原文地址:https://www.cnblogs.com/ac1985482/p/sql_delete_repeat_data.html
Copyright © 2011-2022 走看看