SQL回炉系列(四) 删除重复数据
来源:互联网 发布:java web php 编辑:程序博客网 时间:2024/05/29 00:34
有时候因为采集程序的问题,会写入一模一样的两条数据,或者我们在做后期统计的过程中稍有不慎,重复运行了统计脚本,而数据库的字段定义又没有阻止重复数据的写入,那么你在这些重复数据中做查询和计算就很可能得到错误的结果,甚至因为重复数据的暴涨拖累整个数据库的运行。
这时你就需要动手删除重复数据。很简单对吧,几行delete足矣!可是,即使是英明神武的你,也会有一(绝)时(对)糊(手)涂(贱)的时候,一删错成千古恨有没有?有没有?
体会了数次懊丧经历之后,我终于开始正视这个问题,下面的步骤每一步都很简单,但照着它做会给你妥妥的保证。
--1. 判断有无重复数据select back,getTime from dbo.CF_OriginalData_2014_12 group by back,getTime having count(*) > 1--2. 建临时表,拷贝表结构select top 0 * into temp1 from CF_OriginalData_2014_12select * from temp1--3. 为临时表手动建索引,选择back+getTime为唯一索引,勾选忽略重复的值--4. 拷贝数据到临时表,此时重复记录会被忽略insert into temp1(UA,UB,UC,IA,IB,IC,py,Qw,pf,EP,back,F,getTime,Number) Select UA,UB,UC,IA,IB,IC,py,Qw,pf,EP,back,F,getTime,Number from CF_OriginalData_2014_12--5. 将原表清空,重设自增列序号delete from CF_OriginalData_2014_12DBCC CHECKIDENT ('CF_OriginalData_2014_12', RESEED, 1)DBCC CHECKIDENT ('CF_OriginalData_2014_12', RESEED)--6. 将临时表中数据考回原表insert into CF_OriginalData_2014_12(UA,UB,UC,IA,IB,IC,py,Qw,pf,EP,back,F,getTime,Number)select UA,UB,UC,IA,IB,IC,py,Qw,pf,EP,back,F,getTime,Number from temp1--7. 删除临时表--drop table temp--8. 查看数据确认重复数据已删除select top 100 * from CF_OriginalData_2014_12 order by getTime asc
- SQL回炉系列(一) 序言
- SQL回炉系列(二) 多表联合查询和排序
- SQL回炉系列(三) 拆分原始数据到对应的月份表中
- SQL回炉系列(四) 删除重复数据
- SQL回炉系列(五) 为显示曲线图获取不同时间颗粒的数据
0 0
- SQL回炉系列(四) 删除重复数据
- SQL 回炉系列(一)
- SQL回炉系列(五) 为显示曲线图获取不同时间颗粒的数据
- sql删除重复数据
- sql 删除重复数据
- Sql删除重复数据
- SQL删除重复数据
- sql删除重复数据
- sql删除重复数据
- SQL删除重复数据
- sql删除重复数据
- SQL删除重复数据
- SQL 删除重复数据
- sql删除重复数据
- sql 删除重复数据
- SQL - 删除 重复数据
- 删除重复数据SQL
- SQL删除重复数据
- JAVA 相关技术文章链接
- jdbcTemplate的查询方法理解
- Android写文件到SDCard的简单代码
- spring 配置文件的相互引用问题
- golang按行写文件
- SQL回炉系列(四) 删除重复数据
- 设置整行代码上下移动 删除
- RASP 完爆 WAF 的5大理由!
- CSS3 几个常见的属性总结
- linux设备驱动中的阻塞与非阻塞(一)
- 基于thinkPHP框架使用PHPExcel导出数据
- 被误解的MVC和被神化的MVVM
- 消息推送分类:推动(Push)模式和拉动(Pull)模式
- H-index II | LeetCode 12ms Solution