mssql sqlserver 三种数据表数据去重方法分享
程序员文章站
2022-04-09 18:24:08
摘要: 下文将分享三种不同的数据去重方法数据去重:需根据某一字段来界定,当此字段出现大于一行记录时,我们就界定为此行数据存在重复。 数据去重方法1: 当表中最在最大流水号时候,我们可以通过关联的方式为每条重复的记录获取唯一值数据去重方法2:为表中记录,按照指定字段进行群组,并获取最大流水号,然后再进 ......
摘要:
下文将分享三种不同的数据去重方法
数据去重:需根据某一字段来界定,当此字段出现大于一行记录时,我们就界定为此行数据存在重复。
数据去重方法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')--1 insert into test(sort,info)values('a','猫猫小屋') --2 insert into test(sort,info)values('b','mssql_blog') --3 insert into test(sort,info)values('b','优秀的sql——blog') --4 insert into test(sort,info)values('b','maomao365') --5 insert into test(sort,info)values('c','sql优化blog') --6 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" />
推荐阅读
-
mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享
-
MySQL数据表合并去重的简单实现方法
-
mssql sqlserver 使用sql脚本剔除数据中的tab、空格、回车等特殊字符的方法分享
-
mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
-
mssql sqlerver 脚本 计算数据表的结余数的方法分享
-
mssql sqlserver sql对使用逗号分隔的字符串 转换为数据表的另类方法实现
-
mssql sqlserver 使用sql脚本检测数据表中一列数据是否连续的方法分享
-
mssql sqlserver 使用sql脚本实现相邻两条数据相减的方法分享
-
mssql sqlserver 三种数据表数据去重方法分享
-
mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享