`
flashdream8
  • 浏览: 680592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL查重

阅读更多

SQL重复记录查询
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
)

 <转自:http://blog.csdn.net/RainyLin/archive/2009/02/17/3901956.aspx>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/RainyLin/archive/2009/02/17/3901956.aspx

分享到:
评论

相关推荐

    wincc6.0配套的SQL Server 2000(sp3)part38

    为wincc 6.0配套的sql server 2000(sp3),下载后用文件分割精灵(本人的资源里有)重新合并为一个文件(iso格式,可用本人资源里的金山虚拟软件打开)。限于上传文件的大小,共需71个部分,时间较长。

    嵌入式数据库SQL Server CE在图书外采查重系统中的应用.pdf

    在图书外采查重系统中应用嵌入式数据库SQL Server CE是一项技术突破,这项应用解决了一个长期以来困扰图书采购的难题——防止重复采购。随着图书馆采购工作的日益增加,重复购买同一种图书成为了不可避免的问题。...

    oracle查询重复数据方法

    ```sql select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) &gt; 1) ``` 这种方法可以根据 peopleId 字段来判断重复记录,并返回所有重复记录。 方法二...

    超市进销存管理查重报告

    【超市进销存管理查重报告】涉及到的知识点主要集中在超市进销存管理系统的开发背景、意义以及所采用的关键技术,包括ASP.NET和SQL Server 2005。以下是详细阐述: 1. 进销存管理系统开发背景与意义: 进销存管理...

    ssm 查重项目_ssm

    在查重项目中,MyBatis用于与数据库交互,执行查重所需的SQL查询,比如查找相似文档、对比文本等。 **4. 查重系统功能** 查重系统的主要功能可能包括: - **文档上传**:用户可以上传待查重的文档,系统接收并存储...

    嵌入式数据库SQLServerCE在图书外采查重系统中的应用借鉴.pdf

    图书外采查重系统的设计基于Windows Mobile智能手机平台,选择SQL Server CE作为嵌入式数据库,是因为其小巧的内存占用、强大的数据管理和查询处理能力,以及与SQL Server的兼容性。SQL Server CE提供OLEDB和ADO.NET...

    嵌入式数据库SQLServerCE在图书外采查重系统中的应用.pdf

    嵌入式数据库在图书外采查重系统中的应用主要涉及到了SQL Server CE这一特定的数据库系统。SQL Server CE是微软推出的一种轻量级、可用于嵌入式设备的数据库管理系统,特别适用于Windows Mobile平台。它具备小巧的...

    数据库课程设计jsp685论文查重系统mysql.sql

    数据库课程设计,毕业设计,数据库设计

    基于SQL SERVER2000的文献采访若干应用.pdf

    本文基于SQL Server 2000数据库系统,探讨了在文献采访工作中的若干应用,特别是针对采访数据批查重、MARC与EXCEL格式数据转换、数据统计等方面的应用。文章以ILASII系统为案例,分析了该系统功能模块中的缺陷,并...

    JSP数据库SQLSERVER(带论文!)

    【原创】 基于JSP和SQLSERVER的酒店客房信息管理系统(查重通过)

    MySQL 数据查重、去重的实现语句

    以上SQL语句提供了在MySQL中处理数据查重和去重的基本方法。在实际应用中,可能需要根据具体需求进行调整,例如添加更多的条件字段或考虑更复杂的数据关系。此外,对于大规模数据的操作,应谨慎行事,确保在删除或...

    多功能起名查重工具微信小程序源码

    可能使用SQL或NoSQL数据库,如MySQL、MongoDB等。 2. 起名算法模块:依据用户输入的条件,如字义、五行、音韵等,生成符合要求的名字。可能涉及到自然语言处理和机器学习技术。 3. 查重算法模块:对生成的名字进行...

    c++ 书目查重

    可能使用结构化查询语言(SQL)来操作数据,如插入、查询、更新和删除记录。这里可能用到C++的数据库API,如ODBC(Open Database Connectivity)或MySQL Connector/C++来与数据库交互。 2. **文件I/O操作**:报价单...

    mysql 开发技巧之JOIN 更新和数据查重/去重

    主要涉及:JOIN 、JOIN 更新、GROUP BY HAVING 数据查重/去重 1 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN(MySQL 不支持)、CROSS JOIN 这是在网上找到的非常好的一篇博文,图解 join 语句: CODING HORROR-A ...

    嵌入式数据库SQL Server CE在图书外采查重系统中的应用

    将嵌入式数据库SQL Server CE应用于图书外采查重系统。介绍了Windows Mobile与SQL Server CE相结合的信息系统设计过程,包括数据库建立、开发环境以及客户端与服务器环境搭建。详细阐述了基于远程数据访问的数据同步...

    Sql Server数据库技术实现海量录井地质数据的处理及应用.pdf

    5. 数据查重:提供了查找重复数据的工具,确保数据的唯一性和准确性。 6. 统计和海量计算:内置丰富的统计分析功能和能够处理大规模计算的能力,使得数据分析更加灵活高效。 7. 安全性:SqlServer提供了较为高级的...

    带文档,sql,所有jar包的s2sh完整的环境

    struct2,spring,hibernate已经集成好的一个完整框架。 其实就是些配置文件和包,这些东西总会成为新手入门的障碍,...有所有的sql,还有文档,以及完整的eclipse项目包。 以后会基于这个做一个开源的cms,敬请期待。

    springboot毕业论文查重与管理平台源码+论文+视频.zip

    重点:所有项目都有sql文件,比其他博主项目要严谨一万倍所有项目本人亲自测试可运行使用!!有任何问题私我解决! 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私...

Global site tag (gtag.js) - Google Analytics