首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
Oracle
开发
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
用sql语句把数据库中的重复数据消除,只保留一条,可以做吗?
[已结贴,结贴人:cnhuai]
加为好友
发送私信
在线聊天
cnhuai
爱好网络
等级:
发表于:
2008-05-19 10:57:44
楼主
有个 数据库 有 大量的数据大概600万条
里面有大量的重复数据
如何利用SQL语句来把重复的数据消除
相同的 数据只保留一条?
问题点数:
20
回复次数:
11
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ehsgs
oo
等级:
发表于:
2008-05-19 11:02:50
1
楼 得分:
0
delete from Ytab where rowid not in (select max(rowid) from Ytab group by 字段);
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
richard360347477
richard
等级:
发表于:
2008-05-19 11:03:33
2
楼 得分:
0
delete from tablename a where rowid <>(select min(rowid) from tablename b
where a.id=b.id goup by a.id)
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ehuman
凌蓝风
等级:
发表于:
2008-05-19 11:06:18
3
楼 得分:
0
这个问题好像都回答过了,
使用分析函数的RowNum就可以,
楼主给出表结构,给你完整SQL。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cnhuai
爱好网络
等级:
发表于:
2008-05-19 11:21:08
4
楼 得分:
0
补充说明:
数据库表中有及个字段
其中有个是IP字段
大量的数据中IP数据有不少重复
现在想把记录中IP相互重复的消掉,只保留一条
数据库名 ipinfo
表中大概有500万条数据
重复的有20万条
想得到的不重复的(500-20)万条数据
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ehsgs
oo
等级:
发表于:
2008-05-19 11:28:36
5
楼 得分:
8
delete from ipinfo where rowid not in (select max(rowid) from ipinfo group by IP);
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cnhuai
爱好网络
等级:
发表于:
2008-05-19 11:44:01
6
楼 得分:
0
说个清楚的:表名ipinfo
ID ip msk
1 192.168.1.1 24
2 192.168.1.2 24
3 192.168.1.1 23
4 192.168.1.1 26
不管msk字段是什么 就看ip的相同情况
错做结果:
ID ip msk
1 192.168.1.1 24
2 192.168.1.2 24
我在网上找的资料
看看这样些对不对:
delete from ipinfo a where a.id <>(select min(id) from ipinfo where ip=a.ip)
如果是对的 不理解a是什么意思
以前学 SQL语句时没碰到这种写法
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cnhuai
爱好网络
等级:
发表于:
2008-05-19 12:09:24
7
楼 得分:
0
谁给我解释下:
delete from ipinfo a where a.id <>(select min(id) from ipinfo where ip=a.ip)
嘿嘿
我不太理解
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
xiaoduan9678
火柴
等级:
发表于:
2008-05-19 12:16:10
8
楼 得分:
2
delete from tablename where 条件=条件
and rowid <>(select max(rowid) from tablename where 条件=条件)
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
fenghongx
等级:
发表于:
2008-05-19 13:04:37
9
楼 得分:
5
引用 6 楼 cnhuai 的回复:
delete from ipinfo a where a.id <>(select min(id) from ipinfo where ip=a.…
a实际上就是表ipinfo的别名~~a.id你可以理解为ipinfo.id~~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zlb_chen
每天爱你多一点
等级:
发表于:
2008-05-19 14:38:57
10
楼 得分:
0
来晚了。楼上各位都说了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhang555
等级:
发表于:
2008-05-19 15:08:57
11
楼 得分:
5
delete from ipinfo a where a.id <(select max(id) from ipinfo where ip=a.ip)
思想都一样,都是先找到保留的记录,在删除其他数据记录
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友