查询数据库中的重复数据
来源:互联网 发布:取英文名字男孩软件 编辑:程序博客网 时间:2024/05/16 09:08
========第一篇=========
在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句:
select data_guid from adam_entity_datas a where a.rowid > (select min(b.rowid) from adam_entity_datas b where b.data_guid = a.data_guid)
如果表中有大量数据,但是重复数据比较少,那么可以用下面的语句提高效率
select data_guid from adam_entity_datas where data_guid in (select data_guid from adam_entity_datas group by data_guid having count(*) > 1)
此方法查询出所有重复记录了,也就是说,只要是重复的就选出来,下面的语句也许更高效
select data_guid from adam_entity_datas where rowid in (select rid from (select rowid rid,row_number()over(partition by data_guid order by rowid) m from adam_entity_datas) where m <> 1)
目前只知道这三种比较有效的方法。
第一种方法比较好理解,但是最慢,第二种方法最快,但是选出来的记录是所有重复的记录,而不是一个重复记录的列表,第三种方法,我认为最好。
========第二篇=========
select usercode,count(*) from ptype group by usercode having count(*) >1
========第三篇=========
找出重复记录的ID:
select ID from
( select ID ,count(*) as Cnt
from 要消除重复的表
group by ID
) T1
where T1.cnt>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
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录,可以按以下方法删除
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不重复的结果集
更改数据库中表的所属用户的两个方法
大家可能会经常碰到一个数据库备份还原到另外一台机器结果导致所有的表都不能打开了,原因是建表的时候采用了当时的数据库用户……
- 查询数据库中的重复数据
- 查询数据库重复数据
- Mysql数据库查询重复数据
- 查询数据库表重复数据
- 查询数据表中的重复数据
- 删除数据库中的重复数据
- 去除数据库中的重复数据
- 数据库查询时过滤重复数据
- 数据库查询 去掉 某列重复数据
- Sql查询与删除数据库重复数据
- sql_查询一张表中的重复数据
- 查询数据库中的前几条数据
- JDBC查询数据库中的数据
- 查询时序数据库中的数据
- oracle数据库中的重复数据的删除
- 删除数据库表中的重复数据
- 删除数据库表中的重复数据
- Datatable 中的数据查询(查询不重复记录)
- mysql 打开3306端口
- Oracle的imp/exp 各版本之间的规则
- 全栈工程师到底有什么用
- 专访冯小刚:窄胡同里长跑
- matlab练习程序(结构张量structure tensor)
- 查询数据库中的重复数据
- HDU 1698 Just a Hook (线段树)
- DevExpress控件学习系列-1.1简介
- 编写更好的jQuery代码的建议
- 间隔1.5s发送一次DHCP DISCOVER报文
- 内向者性格&&安静的力量
- 使用bat命令或shell脚本调用java程序
- debian(wheezy) gvim GConf-WARNING **: Client failed to connect to the D-BUS daemon:
- PowerDesigner常用快捷键