SQLServer 删除表中的重复数据
来源:互联网 发布:微博数据分析工具 编辑:程序博客网 时间:2024/06/05 10:02
create table Student(
ID varchar(10) not null,
Name varchar(10) not null,
);
insert into Student values('1', 'zhangs');
insert into Student values('2', 'zhangs');
insert into Student values('3', 'lisi');
insert into Student values('4', 'lisi');
insert into Student values('5', 'wangwu');
删除Name重复多余的行,每个Name仅保留1行数据
1、查询表中Name 重复的数据
2、检查表中是否有主键或者唯一值的列,当前可以数据看到ID是唯一的,可以通过Name分组排除掉ID最大或最小的行
delete from Student
where Name in( select Name from Student group by Name having count(Name) > 1) and
3、如果表中没有唯一值的列,可以通过 ROW_NUMBER()函数来删除重复数据
Delete T From
(Select Row_Number() Over(Partition By [Name] order By [ID]) As RowNumber,* From Student)T
ID varchar(10) not null,
Name varchar(10) not null,
);
insert into Student values('1', 'zhangs');
insert into Student values('2', 'zhangs');
insert into Student values('3', 'lisi');
insert into Student values('4', 'lisi');
insert into Student values('5', 'wangwu');
删除Name重复多余的行,每个Name仅保留1行数据
1、查询表中Name 重复的数据
select Name from Student group by Name having count(Name) > 1
2、检查表中是否有主键或者唯一值的列,当前可以数据看到ID是唯一的,可以通过Name分组排除掉ID最大或最小的行
delete from Student
where Name in( select Name from Student group by Name having count(Name) > 1) and
ID not in(select max(ID) from Student group by Name having count(Name) > 1 )
执行删除脚本后查询
3、如果表中没有唯一值的列,可以通过 ROW_NUMBER()函数来删除重复数据
重复执行插入脚本,查看表数据,表中没有唯一列值
Delete T From
(Select Row_Number() Over(Partition By [Name] order By [ID]) As RowNumber,* From Student)T
Where T.RowNumber > 1
小知识点
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
表示根据COLUMN分组,在分组内部根据 COLUMN排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
函数“Row_Number”必须有 OVER 子句。OVER 子句必须有包含 ORDER BY
Row_Number() Over(Partition By [Name] order By [ID]) 表示已name列分组,在每组内以ID列进行升序排序,每组内返回一个唯一的序号
执行删除脚本后查询表数据
阅读全文
0 0
- SQLServer 删除表中的重复数据
- sqlserver 2008R2 删除一个表中的重复数据
- SQLserver 查看表详细信息--删除重复数据
- SQLSERVER删除表内重复数据
- [SQLServer]如何删除表中的重复行
- 删除表中的重复数据
- SQLServer删除重复数据记录
- SqlServer怎么删除重复数据
- 删除表中的重复记录数据
- 删除数据库表中的重复数据
- oracle删除表中的重复数据
- 如何删除表中的重复数据
- 删除数据库表中的重复数据
- Sql Server 删除表中的重复数据
- sqlserver 2008 R2 删除重复数据
- ORACLE,SQLSERVER,DB2 删除重复数据SQL
- 删除数据库中的重复数据
- 删除数据表中的重复数据
- Gym
- hdu6069 Counting Divisors
- python自带IDLE(python gui)强大的调试功能
- 漫谈操作系统11 -- 上下文切换
- 设计模式——命令模式
- SQLServer 删除表中的重复数据
- qobject_cast用法
- 【AE】大数据点文件读取生成SHP文件时使用IFeatureBuffer快速提高读取效率
- diamond动态配置的系统的快速搭建
- python代码中的中文乱码解决方法
- hdu5691(状态压缩dp)Sitting in Line
- 最大子序列和的算法分析
- docker中主机与容器互相拷贝文件的方法
- Windows FLASK环境