总的思路就是先找出表中重复数据中的一条数据,插入临时表中,删除所有的重复数据,然后再将临时表中的数据插入表中。所以重点是如何找出重复数据中的一条数据,有三种情况

1.重复数据完全一样,使用distinct

select distinct * from table

2.id列不同,id类型为int,自增字段,使用聚合函数max或其他

select * from  table where id in(

select MAX(id)

FROM table  group by “分组字段”having COUNT(*)>1)

3.id列不同,id类型为uniqueidentifier

(1)使用row_number() over()和partition by给每一组添加行号

Select *,(row_number() Over(partition By ‘分组字段’Order BY ‘排序字段’)) RowNum From 
  (select * from  table where ‘分组字段’in(

select ‘分组字段’  FROM table  group by “分组字段”having COUNT(*)>1) t1)

(2)将行号=1的数据插入临时表中

Select * into #A from (‘上面的sql语句’) t2 where t2.RowNum=1

sql删除重复数据思路的更多相关文章

  1. sql 删除重复数据且保留其中一条 用sql 关键字:with ROW_NUMBER

    --1.建立表:Coursecreate table Course( ID int identity(1,1),--ID Student varchar(20) ,--学生 Sub varchar(2 ...

  2. MSSQLSERVER数据库- SQL删除重复数据的五种方式

    删除重复的数据,在平时的工作中还是会和碰到的,感觉挺有用,从网上摘录的,记在这里,以备需要时查阅 --方法一,IN方式,适合2000/2005/2008,6728 毫秒 DELETE [student ...

  3. 【转】SQL删除重复数据方法,留着备用

    感谢孙潇楠前辈的总结,地址http://www.cnblogs.com/sunxiaonan/archive/2009/11/24/1609439.html 例如: id           name ...

  4. (转载)SQL删除重复数据方法

    本文转载自http://www.cnblogs.com/sunxiaonan/archive/2009/11/24/1609439.html 例如: id           name         ...

  5. SQL删除重复数据方法

    例如: id           name         value 1               a                 pp 2               a           ...

  6. 【转】SQL删除重复数据方法

    例如: id           name         value 1               a                 pp 2               a           ...

  7. SQL删除重复数据,保留一条

    例如: id           name         value 1               a                 pp 2               a           ...

  8. sql 删除重复数据,保留重复数据第一条

      SELECT row=ROW_NUMBER() OVER(PARTITION BY 重复字段一,重复字段二 ORDER BY GETDATE()) ,* FROM 筛选重复表名     具体实现如 ...

  9. SQL删除重复数据只保留一条数据

    1.表结构与数据: CREATE TABLE tablezzl( id int, name ) ); 2.查询出重复的数据: 3.查询出要保留的重复数据: 4.最终的SQL: DELETE FROM ...

随机推荐

  1. PyQt(Python+Qt)学习随笔:树型部件QTreeWidget中的topLevelItem、indexOfTopLevelItem和takeTopLevelItem方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 获取指定位置顶层项 树型部件QTreeWidget中,通过topLevelItem方法根据位置索引取 ...

  2. PyQt(Python+Qt)学习随笔:Qt Designer中图像资源的使用及资源文件的管理

    一.概述 在Qt Designer中要使用图片资源有三种方法:通过图像文件指定.通过资源文件指定.通过theme主题方式指定,对应的设置界面在需要指定图像的属性栏如windowIcon中通过点击属性设 ...

  3. [Java复习]架构部署 超时重试 幂等防重

    画一下你们系统的整体架构图,说说各个服务在生产环境怎么部署的? 核心:服务框架.注册中心.网关 即使你没有用很多微服务架构里的东西,只要有上述三个东西,配合上写一些文档,接口文档,分布式系统架构,其实 ...

  4. 看图知Docker

    0.https://www.docker.com/ 1.Why Docker 可参考: https://www.cnblogs.com/kex1n/p/6933039.html https://www ...

  5. Android之Activity启动流程详解(基于api28)

    前言 Activity作为Android四大组件之一,他的启动绝对没有那么简单.这里涉及到了系统服务进程,启动过程细节很多,这里我只展示主体流程.activity的启动流程随着版本的更替,代码细节一直 ...

  6. 使用数据泵,在不知道sys用户密码的情况下导出导入

    expdp \"/as sysdba\" directory=my_dir logfile=expdp.log dumpfile=expdp_scott.dmp schemas=s ...

  7. centos 7 安装MySQL 5.7.23

    centos 7 安装MySQL 5.7.23   1.  上传MySQL安装包到服务器 mysql-5.7.23-linux-glibc2.5-x86_64.tar.gz 2.  解压MySQL安装 ...

  8. Grafana 备份恢复教程

    原文链接:https://fuckcloudnative.io/posts/how-to-back-up-all-of-your-grafana-dashboards/ 目前我们 k8s 集群的 Gr ...

  9. Spark性能调优篇二之重构RDD架构及RDD持久化

    如果一个RDD在两个地方用到,就持久化他.不然第二次用到他时,会再次计算. 直接调用cache()或者presist()方法对指定的RDD进行缓存(持久化)操作,同时在方法中指定缓存的策略. 原文:h ...

  10. 第 13 章 StringTable详解

    目录 第 13 章 StringTable 1.String 的基本特性 1.1.String 概述 1.2.String 的基本特征 1.3.String 的底层结构 2.String 的内存分配 ...