免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6114 | 回复: 14
打印 上一主题 下一主题

如何删除db2中数据表中的重复行? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-27 09:57 |只看该作者 |倒序浏览
如何删除db2中数据表中的重复行?

论坛徽章:
0
2 [报告]
发表于 2006-05-29 16:10 |只看该作者
重复到什么程度?是所有字段的值都相同嘛?
比较通用的方法
1、把重复的记录插入到一个临时表里
2、把原表中重复记录删除
3、把临时表里的重复记录用group by的方式取出一条插回到原表

论坛徽章:
0
3 [报告]
发表于 2006-05-30 17:26 |只看该作者
原帖由 silverdust 于 2006-5-29 16:10 发表
重复到什么程度?是所有字段的值都相同嘛?
比较通用的方法
1、把重复的记录插入到一个临时表里
2、把原表中重复记录删除
3、把临时表里的重复记录用group by的方式取出一条插回到原表


1.是所有字段重复!
2.由于数据有几万行,比较麻烦

第2如何控制以后导入数据不出现重复行呢,关键没有定义好!

论坛徽章:
0
4 [报告]
发表于 2006-05-31 09:28 |只看该作者
如果所有字段都重复的话,你就按我说的步骤做吧
几万行的数据不算多啊,数据库处理起来很快的

第2如何控制以后导入数据不出现重复行呢,关键没有定义好!
-----------------------------
这句话什么意思,没看懂

论坛徽章:
0
5 [报告]
发表于 2006-06-01 16:06 |只看该作者
原帖由 silverdust 于 2006-5-31 09:28 发表
如果所有字段都重复的话,你就按我说的步骤做吧
几万行的数据不算多啊,数据库处理起来很快的

第2如何控制以后导入数据不出现重复行呢,关键没有定义好!
------------------------ ...


有N多行重复2行或3行的数据啊,怎么弄呢,太麻烦了,大哥!
你说的方法不懂!!!

论坛徽章:
0
6 [报告]
发表于 2006-06-02 10:07 |只看该作者
加上distinct参数,把数据select出来导入到临时表里,清空表,然后从临时表恢复数据

论坛徽章:
0
7 [报告]
发表于 2006-06-02 13:04 |只看该作者
正好我这里有个例子,你看看吧
tmp1和tmp2结构相同,register.txt是包含重复数据的文件

echo "建临时表1\n"
db2 "create table tmp1 \
(customer_id char(20),register_amount decimal(16,2))"

echo "建临时表2\n"
db2 "create table tmp2 \
(customer_id char(20),register_amount decimal(16,2))"

echo "将数据文件装入临时表1\n"
db2 "import from ${filepath}/register.txt of del \
modified by coldel| insert into tmp1"

echo "将重复数据插入临时表2\n"
db2 "insert into tmp2 \
select * from tmp1 where \
customer_id in (select customer_id from \
tmp1 group by customer_id having count(*)>1)"

echo "删除临时表1中的重复数据\n"
db2 "delete from tmp1 \
where customer_id in \
(select customer_id from tmp1 \
group by customer_id having count(*)>1)"

echo "取重复数据中的1条记录插入临时表1\n"
db2 "insert into tmp1 \
select customer_id,max(register_amount) \
from tmp2 group by \
customer_id"

[ 本帖最后由 silverdust 于 2006-6-2 13:06 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-06-02 23:16 |只看该作者
很有帮助啊

论坛徽章:
0
9 [报告]
发表于 2006-06-06 07:20 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
10 [报告]
发表于 2006-06-07 09:27 |只看该作者
嗯!有道理!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP