- 浏览: 1240230 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (718)
- HTML (13)
- JS基础 (23)
- JS应用 (40)
- AJAX (6)
- JSP相关 (12)
- JAVA基础 (52)
- JAVA应用 (74)
- APPLET (11)
- SWING\RCP (2)
- JAVA反射 (6)
- 设计模式 (26)
- 数据库设计 (20)
- Struts (35)
- Struts2 (12)
- Spring (22)
- Hibernate (45)
- Ibatis (18)
- mybatis (3)
- SSH (8)
- UML (5)
- WebService (3)
- XML (16)
- Log4j (7)
- WEB容器 (26)
- 数据结构 (36)
- Linux (34)
- Ruby on Rails (1)
- 其它技术 (27)
- IDE配置 (15)
- 项目实战 (2)
- Oracle (69)
- JAVA报表 (7)
- Android学习 (2)
- 博客链接 (1)
- 网络基础 (1)
- WEB集群 (1)
- .Net开发 (11)
- PB (4)
- 系统构建 (15)
最新评论
-
jnjeC:
牛逼啊哥们,讲得太好了
Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包 -
九尾狐的yi巴:
很好 感谢!
Itext中文处理(更新版) -
luweifeng1983:
有用的,重启一下嘛。
设置eclipse外部修改文件后自动刷新 -
Master-Gao:
设置了也不管用,怎么破呢?
设置eclipse外部修改文件后自动刷新 -
aigo_h:
锋子还有时间写博客,还是很闲哈!
Add directory entries问题
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
(四)
查询重复
select * from tablename where id in (select id from tablename
group by id
having count(id) > 1
)
发表评论
-
Jdbc执行很慢,而PLSQL执行快的问题解决
2016-04-14 13:51 12325最近在检查一方法时发现程序执行SQL查询时非常慢,但使用P ... -
org.apache.commons.dbcp.DbcpException: java.sql.SQLException: 不能在 UTF8 和 UCS2 之间
2016-04-07 14:13 1042今天生产环境tomcat启动后,用户登录时系统报错:java ... -
rollup()和rollup(())的区别
2015-08-21 14:50 732引用:http://blog.csdn.net/damen ... -
Oracle hint
2014-09-25 12:31 644转自:http://www.cnblogs.com/ebs ... -
Oracle hint用法
2014-09-25 12:12 5031. /*+ALL_ROWS*/ 表明对语 ... -
Oracle表与索引的分析及索引重建
2014-09-25 12:09 771转自:http://www.cnblogs.co ... -
Oracle的优化器的RBO和CBO方式
2014-09-25 11:30 449转自:http://www.blogjava.net/wx ... -
P6Spy SQL语句拦截工具
2013-08-20 15:58 2071P6Spy P6Spy 是一个可 ... -
ORACLE快照原理及实现总结
2013-03-18 13:23 4246转:http://blog.csdn.net/lingo0 ... -
plsql developer 使用技巧
2013-01-25 17:48 1222plsql developer 使用技巧 Oracle数据 ... -
Oracle字符集查看及修改
2012-12-12 17:04 826Oracle字符集查看及修改 http://blog.csd ... -
Oracle性能优化系列
2012-12-04 13:41 883Oracle删除重复数据的一种高效的方法 Oracle性能优化 ... -
java.sql.SQLException: Io 异常: Got minus one from a read call
2012-12-04 11:14 36228Tomcat服务器下的应用连接Oracle时报错,出现以下异常 ... -
Oracle中round() 函数与trunc()函数的比较
2012-11-29 14:32 936转:http://blog.sina.com.cn/s/blo ... -
Oracle百万记录sql语句优化技巧
2012-11-12 14:56 931转:http://www.cnblogs.com/er ... -
Oracle 获取当前日期及日期格式
2012-11-05 16:26 1017转自:http://blog.sina.com.cn/s/bl ... -
Oracle CASE WHEN 用法介绍
2012-11-05 16:19 773转:http://www.cnblogs.com/eshizh ... -
ORACLE 日期加减操作
2012-11-05 15:14 772转自:http://www.cnblogs.c ... -
update关联更新在sqlserver和oracle中的实现[转]
2012-09-18 16:23 1030from: http://www.webjx.com/html ... -
plsql developer导入导出数据库方法
2012-06-15 14:23 1278转:http://blog.csdn.net/leeli198 ...
相关推荐
Oracle 查询重复数据并删除,只保留一条记录 Oracle 是一种关系型数据库管理系统,广泛应用于企业级数据库管理。然而,在实际应用中,数据重复问题经常会出现,例如在资源目录在线编目的资源项子表中存在多条重发...
本文将详细介绍如何使用SQL语句来查询表中的重复数据,并基于提供的SQL示例进行深入分析。 ### SQL查询重复数据的核心概念 在开始之前,我们需要了解几个关键的概念: 1. **重复数据**:指的是在数据表中存在多条...
本文将深入探讨如何在Oracle数据库中查询重复数据,理解SQL语句背后的逻辑,并掌握其实现方法。 ### Oracle查询重复数据的核心概念 #### 1. 重复数据的定义 在数据库术语中,重复数据通常指的是在数据集中存在一个...
今天,我们将介绍三种删除重复数据的方法,并对每种方法的执行时间进行比较。 方法一:使用子查询删除重复数据 delete from demo a where a.rowid <> (select max(rowid) from demo b where b.object_id=a.object_...
"数据库查询删除重复数据" 数据库查询删除重复数据是数据库管理中的一项重要操作,旨在查找和删除表中的重复记录。重复记录是根据单个字段或多个字段来判断的。下面介绍几种查找和删除重复记录的方法。 根据单个...
下面将详细介绍如何使用SQL语句来查询和删除表中的重复数据。 ### (一)基本概念及实现方法 1. **查询表中重复数据** - **单字段重复数据查询** ```sql SELECT * FROM people WHERE peopleId IN ( SELECT ...
### Oracle查询重复数据与删除重复记录方法 在Oracle数据库中,有时我们需要找出并处理重复的数据。这不仅可以提高数据质量,还能提升查询效率。本文将详细介绍几种常用的查询和删除Oracle数据库中重复记录的方法。...
`语句,删除原有的包含重复数据的表,并将去重后的临时表重命名为原表名,从而完成了整个去重过程。这种方式不仅清除了重复数据,而且保证了原表的数据结构和名称不变,对数据库的其他部分没有影响。 ### 总结 在...
以上介绍了三种删除表中重复数据的方法:使用临时表、使用子查询以及使用`ROW_NUMBER()`函数。不同的数据库系统可能支持的功能不同,因此在实际操作时需要根据所使用的数据库类型选择合适的方法。同时,在执行任何...
5. **删除重复数据**:在确认了要删除的重复记录后,可以使用Access的“删除查询”功能来移除它们。但请注意,删除操作是不可逆的,因此在执行前务必备份数据。 6. **自动化过程**:如果经常需要进行此操作,可以...
在“重复数据删除服务器详细信息”页面,选择对应的介质服务器并输入认证信息。 5. 忽略任何警告提示,确认重复数据删除存储路径为之前创建的目录,点击下一步继续。 6. 确认配置信息无误后,点击下一步开始创建...
重复数据删除是一种从数据库中删除重复数据并提供数据备份的方法。 在重复数据删除中,有许多算法是可行的,它们基本上可以检测和消除多余的数据并存储数据内容的唯一副本。 在本文中,我们首先调查了重复数据删除...
本文将深入探讨基于MD5算法的重复数据删除技术,并提出一种优化方案。 #### 二、重复数据删除技术概述 重复数据删除技术是一种旨在减少冗余数据存储的技术。其基本原理是在数据写入或备份过程中识别并去除重复的...
### Oracle查询重复数据与删除重复记录方法 #### 一、查询重复数据 ##### 1. 使用ROWID方法 ROWID是Oracle中一个特殊的数据类型,它代表了表中每一条记录在物理存储上的唯一地址。利用ROWID可以非常高效地查询和...
删除重复数据可以使用多种方法,包括使用 SELECT DISTINCT 语句、使用自动生成的标识符、使用游标、使用子查询等。 完全重复的记录 完全重复的记录是指所有字段均重复的记录。这种情况下,删除重复数据可以使用 ...
### 重复数据删除技术背景知识解析 #### 技术概览与原理 重复数据删除技术是一种数据优化策略,旨在减少存储系统中数据的冗余,从而有效利用存储空间,提高数据传输效率。这一技术的核心在于识别和消除重复的数据...
本文将详细介绍查询和处理重复数据的方法,包括查找所有重复记录、查找重复记录、删除重复记录等。 查找所有重复记录 使用以下 SQL 语句可以查找所有重复记录: ```sql SELECT * FROM t_info a WHERE ((SELECT ...
本文将详细探讨两种情况下的重复数据删除方法:部分字段重复和完全重复记录。 1. 部分字段重复数据的删除 部分字段重复意味着表中有两行或多行记录在某些特定字段上具有相同的值,但不一定是所有字段都相同。首先...
在IT领域,重复数据删除(Data Deduplication)是一种高效的数据存储策略,它通过识别并消除数据存储中的冗余信息来节省存储空间。本技术在云计算、备份、归档等领域广泛应用,尤其对于处理大量数据的场景,其效果尤...