当前位置: 首页 > news >正文

抱SQL SERVER大腿之从巨大表中提炼非重复数据

SQL SERVER大腿之从巨大表中提炼非重复数据

左直拳

有一个表,2千多万条记录,其中有很大部分只有一两个字段的内容不同,可视为重复记录。现在要从这个表里提炼出不重复的部分,转移到另一个新表里。同时这个转移不是简单的复制,因为两表的结构不同,新表中的新字段需要赋值。

凭我那两下子,是这么搞的:

1、不能用一条SQL语句搞定(也许有,我写不出来)。要用循环;

2、使用临时表;

3、删除临时表中的重复记录,然后转移到新表

过程如下:

--创建一个与新表一模一样的临时表

CREATE TABLE #TEMP ……

--循环,将符合条件的记录(未过滤重复)插进临时表

--这里对这个巨大表是分批处理的,每个循环最多处理10万条

WHILE( @i < @j )

BEGIN

SET @k1 = @i * 100000

SET @k2 = (@i + 1) * 100000

INSERT INTO #TEMP(……)

SELECT

……

FROM a, b

WHERE ……

AND a.Id BETWEEN @k1 AND @k2

GROUP BY ……

--赋新值

UPDATE #TEMP SET ……

FROM #TEMP,a

WHERE ……

AND a.Id BETWEEN @k1 AND @k2

SET @i = @i + 1

END

--删除重复行

DELETE FROM #TEMP WHERE

EXISTS(SELECT 1 FROM #TEMP a WHERE a.Id<#TEMP.Id AND a. KeyId=#TEMP.KeyId)

--最后将数据从临时表复制到新表

INSERT INTO ……

SELECT ……

FROM #TEMP

两千多万条记录啊。

两千多万条记录算条毛?要是两千多万元人民币多好。

相关文章:

  • 抱SQL SERVER大腿之我爱用视图
  • python初学往哪个方向比较容易_学习Python应该往哪个方向发展?
  • 学习Extjs与RoR的集成有感
  • python是什么工程_十年开发工程师告诉你python是做什么的,新手必看哦!
  • 硅谷游记
  • mysql custom 环境变量_mysql安装问题
  • 依然渐
  • mysql multi delete_mysql存储过程出现Unknown table 'a' in MULTI DELETE的解决办法
  • 活着的意义
  • python定义复数类complex使代码能够工作_定义一个复数类Complex,使得下面的代码能够工作...
  • java 生产者消费者问题_生产者消费者问题Java三种实现
  • Bézier Curve 简略论述(1)
  • 邮件标题乱码 java_Java mail 发送邮件 主题(标题)乱码
  • UltraEdit正则表达式搜索替换小技巧
  • java 动态调用可变参数传递_「params」Java基础------动态参数(可变参数,例如:Object... params) - seo实验室...
  • [译]如何构建服务器端web组件,为何要构建?
  • exif信息对照
  • happypack两次报错的问题
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JavaScript-Array类型
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • LeetCode算法系列_0891_子序列宽度之和
  • Mysql5.6主从复制
  • ReactNativeweexDeviceOne对比
  • 包装类对象
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 移动端解决方案学习记录
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • kubernetes资源对象--ingress
  • 进程与线程(三)——进程/线程间通信
  • 昨天1024程序员节,我故意写了个死循环~
  • #1015 : KMP算法
  • #define用法
  • #Linux(Source Insight安装及工程建立)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (六)c52学习之旅-独立按键
  • (排序详解之 堆排序)
  • (转)Sublime Text3配置Lua运行环境
  • (转)项目管理杂谈-我所期望的新人
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net CHARTING图表控件下载地址
  • .NET MVC 验证码
  • .NET Project Open Day(2011.11.13)
  • .NET 反射 Reflect
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 使窗口永不获得焦点
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net网站发布-允许更新此预编译站点