摘要:

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


数据去重方法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. html5中让页面缩放的4种方法

    1.viewport 这种方法,不是所有的浏览器都兼容<meta name="viewport" content="width=640,minimum-scale= ...

  2. PiggyMetrics windows 部署

    PiggyMetrics 是springcloud的demo,其特性就不细说了,主要描述在win10下部署的坑. 官网是:https://github.com/sqshq/PiggyMetrics 官 ...

  3. xml序列化和反序列化(二)

    上篇讲到关于xml入参实体序列化,下面给出出参实体反序列化,代码如下: /// <summary> /// 反序列化 /// </summary> /// <param ...

  4. Circular view path [home]: would dispatch back to the current handler URL [/home] again. Check your ViewResolver setup!

    Circular view path [home]: would dispatch back to the current handler URL [/home] again. Check your ...

  5. MySQL中group_concat函数深入理解

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 一.MySQL中group_concat函数 完整的语法如下: gr ...

  6. 如何编写高质量JavaScript代码

    书写可维护的代码(Writing Maintainable Code ) 软件bug的修复是昂贵的,并且随着时间的推移,这些bug的成本也会增加,尤其当这些bug潜伏并慢慢出现在已经发布的软件中时.当 ...

  7. Sublime Text 3 Build 3065 License key 注册码 秘钥

    -– BEGIN LICENSE -– Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC99798F ...

  8. 4.app是怎么炼成的

    很多刚进入app后端的小伙伴,有的是之前没有接触过这个行业,有的是只在学校学习了基本的技术知识,不知道开发app的整个流程是怎么样的,因此心里会有一股恐惧.听着别人口中的一大串app相关的术语,也不知 ...

  9. Mac下安装git

    gti下载地址 https://git-scm.com/downloads 一步一步来就完事了.安装完以后执行 git version 查看是否更新到了该版本

  10. 【bzoj 3601】一个人的数论 (莫比乌斯反演+伯努利数)

    题解: (吐槽:网上题解那个不严谨猜测真是没谁了……关键是还猜得辣么准……) 直接化简到求和那一段: $f_{d}(n)=\sum_{t|n}\mu(t)t^{d}\sum_{i=1}^{\frac{ ...