摘要:

下文将分享三种不同的数据去重方法
数据去重:需根据某一字段来界定,当此字段出现大于一行记录时,我们就界定为此行数据存在重复。


数据去重方法1:

当表中最在最大流水号时候,我们可以通过关联的方式为每条重复的记录获取唯一值

数据去重方法2:
为表中记录,按照指定字段进行群组,并获取最大流水号,然后再进行去重操作
 
数据去重方法3:
采用分组后,重复数据组内排名,如果排名大于1代表是重复数据行数据
 
三种去重方法效率对比:
方法3 > 方法2 > 方法1

create table test(keyId int identity,sort varchar(10),
info varchar(20))
go ---方法1
truncate table test ; insert into test(sort,info)values('A','maomao365.com')--
insert into test(sort,info)values('A','猫猫小屋') --
insert into test(sort,info)values('B','mssql_blog') --
insert into test(sort,info)values('B','优秀的sql——blog') --
insert into test(sort,info)values('B','maomao365') --
insert into test(sort,info)values('C','sql优化blog') --
go delete from test where test.keyId = (select max(b.keyId) from test b where test.sort=b.sort);
select * from test
---方法2:
truncate table test ;
insert into test(sort,info)values('A','maomao365.com')
insert into test(sort,info)values('A','猫猫小屋')
insert into test(sort,info)values('B','mssql_blog')
insert into test(sort,info)values('B','优秀的sql——blog')
insert into test(sort,info)values('B','maomao365')
insert into test(sort,info)values('C','sql优化blog')
go
delete from test
where keyid not in(select min(keyId) from test group by sort having count(sort)>=1);
select * from test
---方法3:
truncate table test ;
insert into test(sort,info)values('A','maomao365.com')
insert into test(sort,info)values('A','猫猫小屋')
insert into test(sort,info)values('B','mssql_blog')
insert into test(sort,info)values('B','优秀的sql——blog')
insert into test(sort,info)values('B','maomao365')
insert into test(sort,info)values('C','sql优化blog')
go
delete A2 from (
select row_Number() over(partition by sort order by keyid) as keyId_e,* from test
) as A2 where A2.keyId_e >1 select * from test
go
drop table test

<img src="http://www.maomao365.com/wp-content/uploads/2018/07/mssql_sqlserver_数据表数据去重的三种方法分享.png" alt="mssql_sqlserver_数据表数据去重的三种方法分享" width="813" height="749" class="size-full wp-image-6767" />

转自:http://www.maomao365.com/?p=6766

mssql sqlserver 三种数据表数据去重方法分享的更多相关文章

  1. mssql sqlserver 使用脚本输出excel文件的方法分享

    转自:http://www.maomao365.com/?p=6683 摘要: 下文将分享使用sql脚本输出excel的方法 此脚本可以应用于 表或视图生成excel的方法,若需使用sql脚本输出ex ...

  2. sqlserver 下三种批量插入数据的方法

    本文将介绍三种批量插入数据的方法,需要的朋友可以参考下 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源 ...

  3. mssql sqlserver 使用sql脚本检测数据表中一列数据是否连续的方法分享

    原文地址:http://www.maomao365.com/?p=7335 摘要:    数据表中,有一列是自动流水号,由于各种操作异常原因(或者插入失败),此列数据会变的不连续,下文将讲述使用sql ...

  4. mssql sqlserver sql对使用逗号分隔的字符串 转换为数据表的另类方法实现

    转自:http://www.maomao365.com/?p=10739 摘要: 下文讲述在sqlserver 对逗号分隔的字符串转换为数据表的另类方法实现,如下所示: 实验环境:sql server ...

  5. Hive中的三种不同的数据导出方式介绍

    问题导读:1.导出本地文件系统和hdfs文件系统区别是什么?2.带有local命令是指导出本地还是hdfs文件系统?3.hive中,使用的insert与传统数据库insert的区别是什么?4.导出数据 ...

  6. Hive三种不同的数据导出的方式

    转自:http://blog.chinaunix.net/uid-27177626-id-4653808.html Hive三种不同的数据导出的方式,根据导出的地方不一样,将这些方法分为三类:(1)导 ...

  7. sql有几种删除表数据的方式

    有几种删除表数据的方式? truncate.delete和drop都可以删除数据. TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作. TRUNCATE TABLE 与没有 WHE ...

  8. SQL Server2016导出数据表数据

    SQL Server2016导出数据表数据 高文龙关注0人评论3914人阅读2017-09-22 08:41:56 SQL Server2016导出数据表数据 我们前面已经介绍了很多关于SQL Ser ...

  9. css三种样式表写法

    css三种样式表:1.内嵌样式表: <head>  <style type="text/css">   样式表写法  </style> < ...

随机推荐

  1. SpringMVC中Json数据格式转换

    1    @RequestBody 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为 ...

  2. mysql管理工具navicat的快捷键

    1. ctrl + q  或者 ctrl+n: 打开新查询窗口 2. ctrl + r: 运行当前窗口内的所有语句 3. ctrl + shit + r: 只运行选中的语句 4. ctrl + w: ...

  3. 你不知道的JavaScript--Item16 for 循环和for...in 循环的那点事儿

    大家都知道在JavaScript中提供了两种方式迭代对象: for 循环: for..in循环: 1.for循环 不足: 在于每次循环的时候数组的长度都要去获取: 终止条件要明确: 在for循环中,你 ...

  4. 把一个机器上1天内新增的文件用rsync传送到另外一台机器

    我的shell很菜,只好用shell和php结合来做 1.查找新增的文件,构造rsync的参数,把结果写入到log中 find /data/bmob/test/teststorage/data/ -m ...

  5. input 去掉点击后出现的边框

    添加属性 :focus{outline:none} 就可以去掉默认点击时,边框会出现的蓝色边框. :focus 选择器用于选取获得焦点的元素.提示:接收键盘事件或其他用户输入的元素都允许 :focus ...

  6. Python Web 框架:Tornado

    1.Tornado Tornado:python编写的web服务器兼web应用框架 1.1.Tornado的优势 轻量级web框架 异步非阻塞IO处理方式 出色的抗负载能力 优异的处理性能,不依赖多进 ...

  7. HashMap浅入理解

    HashMap不能保证元素的顺序,HashMap能够将键设为null,也可以将值设为null,与之对应的是Hashtable,(注意大小写:不是HashTable),Hashtable不能将键和值设为 ...

  8. bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)

    题目大意: 读入n. 第一行输出“1”(不带引号). 第二行输出$\sum_{i=1}^n i\phi(i)$. 题解: 所以说那个$\sum\mu$是在开玩笑么=.= 设$f(n)=n\phi(n) ...

  9. BZOJ_3223: Tyvj 1729 文艺平衡树 _splay

    题意: 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 分析: ...

  10. BZOJ_4198_[Noi2015]荷马史诗_huffman实现

    BZOJ_4198_[Noi2015]荷马史诗_huffman实现 题意: Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗> ...