问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql请教 关于筛选并删除重复记录的问题

发布网友 发布时间:2022-04-11 17:55

我来回答

2个回答

热心网友 时间:2022-04-11 19:24

//--按你的描述,建立了表,并插入以上数据。以下语句是从我的环境中复制过来的,执行没问题,我的环境:SQLAnywhere数据库(语法同Sybase)

//---------------------------------------------------------------
//--1,查出完全重复的记录是哪些:
select *,count(a) from tr
group by a,b,c
having count(*) > 1;

//--返回值举例:
a........b........c......重复次数(数值是几就代表有几条完全相同的记录)
1001...1.....20.....3
1002...2.....50.....2

//---------------------------------------------------------------
//--2,显示字段a重复的所有记录:
select * from tr where a in (
select a from tr
group by a
having count(*) > 1)
order by a;

//--返回值不必举例了,只要是a字段重复的就都列出来了

//---------------------------------------------------------------
//--保持数据唯一性的处理(两个方式):
A、(只是画个框框,描述一下,但此方法效率绝对极低,且会占用很大系统资源)写个过程,定义游标,根据字段a的值检查全表,统计出重复的条数,再建立循环进行逐条删除,当循环执行到“该字段的重复记录数-1”时,跳出循环,游标取字段a的下一个欲处理的值

B、创建一个临时表(如tr_1),表结构同原表tr,将tr表中完全不重复的数据检索并插入到“克隆”表tr_1里,再清空tr表,最后将tr_1中的数据全部导入到tr表。
insert into tr_1 //--①--将记录不重复的插入tr_1表(该表须自行建立哦)
select distinct a,b,c from tr;

delete tr; //--②--删除tr表的全部数据

insert into tr
select * from tr_1; //--③--将tr_1表的数据插入回tr表

//--PS:当然了,你也可以用select distinct a,b,c from tr;查出不重复的记录,然后导出到记事本啊什么的,清空tr表之后,再将记事本中的数据导入。

热心网友 时间:2022-04-11 20:42

DELETE FROM mpy
WHERE id IN
(SELECT id FROM mpy GROUP BY id HAVING COUNT(*) > 1)
AND ROWID NOT IN
(SELECT MIN(ROWID) FROM mpy GROUP BY id HAVING COUNT(*) > 1);

试下Oracle里面可以,不过效率比较的低。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
器世间的意思是什么 学吉他大概学费是多少 电吉他培训一般学费多少 天津吉他培训成人班费用多少 吉他培训班一般的学费多少钱 电脑怎么保存下载的视频文件怎么把视频保存到电脑上 双子座男生如果受到伤害死心了'是不是无论怎么做都无法挽回了。 和平精英微信怎么切换账号 更新之后换号方法 有关说说搞笑幽默句子的短句(寻找搞笑幽默的快乐) 说说你多大了,看看能不能做我干闺女怎么回复? 问一个关于查询重复记录的SQL语句,该怎么解决 sql中重复数据的处理 <电脑高手请进>,SQL Server Manager服务管理停止无法启动要怎么解决? windows xp 安装完sql server 个人版后 无法运行 提示“由于登陆失败而无法启动服务器”怎么办!谢谢 SQL发生错误1069 由于登陆失败而无法启动服务 我安装了SQL SEVER2000后,启动SQL SEVER服务的时候显示由于登录失败而无法启动服务是什么意思 SQL提示“由于登陆失败而无法启动服务器”怎么办! sql server 由于登入失败而无法启动服务??? 启动icrosoft SQL Server 服务报错:发生错误1069:由于登录失败而无法启动服务 (数据库查询)你好,我想请问一下SQL,怎样从一张表取2种不同条件的列值,让他们并列在同一张表。 sql server2000 中的怎样查询指定行之间的数据 如何在SQL2000表里两条数据之间插入一条数据!如图!语句怎么写? 请教一个SQL(获取表中两个字段的内容相同的数据),在线等 急救!!!用SQL语句怎么求两个数据之间的差? SQL如何把表中一个范围的数据提取处理 SQL怎么取得某个栏位中符号之间的数据? sql:数据递增到一个值,再递减到一个值,循环。如何选取相邻两个最大值或最小值之间数据个数? sql语句如何查询两个值之间的差? 怎么用sql命令计算100到200之间的奇数的和 sql我想取110-200 和300-400之间的数字,语句怎么写? sql server 2000数据库备份命令? SQL server 2000 备份数据库 SQL server2000数据库备份问题? 怎样备份SQL Server 2000数据库 如何备份sql server2000所有数据库的数据 Sql server2000数据库备份 sql server 2000中怎样备份一个数据库的文件 给高分 sql server 2000数据库备份的问题 怎么备份SQL server2000的数据 SQLServer agent如何恢复运行 win7系统装了sql2005 sql server agent服务启动总是失败,哪位大神知道是怎么回事,不要复制百度里的答案 sql server agent 服务未安装问题 存储过程被修改,没有备份,如何查询上次执行成功的内容代码 连接SQl Server时 出现超时时间已到,在操作完成之前超时间已过或服务器未响应??? 执行sql指令超时有什么解决方法 当网站执行SQL查询比较耗时怎么解决超时问题 SQL语句执行时,报错超时,看看怎么解决? 经常出现,能ping通但SQL数据库访问超时,怎么处理? 如何命令后,已经开始改变SQL超时问题,怎么解决 关于SQL数据库连接超时的问题?