精华内容
下载资源
问答
  • SQL删除重复数据只保留一条

    千次阅读 2020-11-01 00:57:39
    SQL删除重复数据只保留一条 用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select *...

    SQL删除重复数据只保留一条
    用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 peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1)
    and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>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)

    6.消除一个字段的左边的第一位:

    update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like ‘村%’

    7.消除一个字段的右边的第一位:

    update tableName set [Title]=left([Title],(len([Title])-1)) where Title like ‘%村’

    8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录
    update vitae set ispass=-1
    where peopleId in (select peopleId from vitae group by peopleId

    展开全文
  • 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   peopleName in (select peopleName    from people group by peopleName      having count(peopleName) > 1)
    and   peopleId not in (select min(peopleId) from people group by peopleName     having count(peopleName)>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)  
    

    6.消除一个字段的左边的第一位:

    update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'
    

    7.消除一个字段的右边的第一位:

    update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'
    

    8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录

    update vitae set ispass=-1
    where peopleId in (select peopleId from vitae group by peopleId
    
    展开全文
  • 根据autoID删除临时表#tmp中的重复数据,只保留每组重复数据中的第一条
  • 删除重复数据,重复数据只保留ID最小的行 DELETE FROM t_customer_comment WHERE id IN ( SELECT * FROM ( SELECT id FROM t_customer_comment WHERE remaintain_order_id...

     删除重复数据,重复数据只保留ID最小的行

    DELETE
    FROM
    	t_customer_comment
    WHERE
    	id IN (
    		SELECT
    			*
    		FROM
    			(
    				SELECT
    					id
    				FROM
    					t_customer_comment
    				WHERE
    					remaintain_order_id IN (
    						SELECT
    							remaintain_order_id
    						FROM
    							t_customer_comment
    						GROUP BY
    							remaintain_order_id
    						HAVING
    							count(remaintain_order_id) > 1
    						ORDER BY
    							count(remaintain_order_id) DESC
    					)
    				AND id NOT IN (
    					SELECT
    						min(id)
    					FROM
    						t_customer_comment t
    					GROUP BY
    						remaintain_order_id
    					HAVING
    						count(remaintain_order_id) > 1
    					ORDER BY
    						min(id) ASC
    				)
    			) AS ttt
    	)

    思路:

    1:使用 group by ... having 查找出重复的记录 a

    2:使用select min(id) group by ...having count(...)>1找出重复数据中id最小的记录 b

    3:找出 in a and not in b的数据行,即为需要删除的数据c;

    4:直接使用delete from c 在非ORACEL下会报错:[Err] 1093 - You can't specify target table 't_customer_comment' for update in FROM clause;此时需要在c的外边套一层 select * from c as d

    5:然后 delete from d ;删除成功!

    展开全文
  • SQL删除重复数据,保留ID最大的一条

    万次阅读 2018-10-24 14:40:21
    在数据库中可能会存在重复数据,需要删除并且保留其中一条 ,这里我们保留其中id最大的一条 DELETE FROM T_Dat_BankData WHERE BankCode IN ( SELECT BankCode FROM T_Dat_BankData GROUP BY BankCode HAVING ...

    在数据库中可能会存在重复数据,需要删除并且保留其中一条 ,这里我们保留其中id最大的一条

    DELETE 
    FROM
    	T_Dat_BankData 
    WHERE
    	BankCode IN ( SELECT BankCode FROM T_Dat_BankData GROUP BY BankCode HAVING COUNT ( BankCode ) > 1 ) 
    	AND ID NOT IN (
    	SELECT MAX
    		( ID ) 
    	FROM
    		T_Dat_BankData 
    	GROUP BY
    		BankCode 
    	HAVING
    	COUNT ( BankCode ) > 1)

    如上代码中,是删除银行表中的重复数据,根据银行行号分组并删除重复数据保留ID最大的一条。

    主要逻辑就是删除表中按银行编码分组大于一条而且ID不是最大的ID 对这些数据执行删除

    展开全文
  • SQL 删除重复数据,只保留一行

    万次阅读 2018-08-09 16:42:20
    sql的使用中,我们总是碰到需要删除重复数据的情况,但是又不能全部删除完,必须要保留至少一个重复的数据。重复的记录根据两个字段uid, qid判断(实际使用中可以拓展为多个)。 例如: id uid qid 1 1...
  • sql删除重复数据

    万次阅读 2018-06-21 12:00:50
    比如我要删除我cities_airportrunway这张表中runway_number,runway_ref_airport_id这两个字段内容重复的数据删除重复的只留一条。sql我可以这样写:delete from cities_airportrunway where id not in (select min...
  • 优化:百万数据查询删除重复数据,耗时从5423秒下降到2秒左右 优化过程: 根据搜索到的资料: 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 delete from vitae a where (a.peopleId,a.seq) in ...
  • SQL SERVER 利用ROW_NUMBER 删除重复数据

    万次阅读 2018-04-19 08:36:27
    分享一个小知识点,论坛里也常有人问这种问题,表中数据除了ID不同,其他数据一样,然后保存ID最大(或者最小)值,测试数据:--测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table ...
  • sql 删除重复数据,保留重复最小ID

    千次阅读 2018-03-09 17:36:46
    select * from testID Name1 a2 b3 a4 b5 c6 d-- --标准sql方法:mysql、sql server-- -- 查询重复 方法一 select t.id,t.name from test t join( select min(id) id,name from test group by name having(count(1)...
  • 在实际开发中,可能会遇到数据库多条数据重复了,此时我们需要删除重复数据,只保留一条有效数据,用SQL语句怎么实现呢,下面我们模拟一下: 1.准备重复数据: 2.过滤出存在重复数据的信息: SQL语句: SELECT ...
  • SQL语句2条完全一样的数据删除一条保留一条,SQL Server 2005 Express 下测试通过, 仅供参考
  • SQL 删除重复记录,并保留其中一条

    万次阅读 2019-02-12 20:32:14
    SQL删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select...
  • 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from ...
  • 原始表数据: 第一种: DELETE TOP (3) FROM test1 第二种: delete result from (select ROW_NUMBER() over(partition by a order by a)r,* from test1 t ) result where result.r!=1 删除后: ...
  • 现在需要将这些重复数据删除,但是只保留aid最大的一条数据 SQL语句: delete from `backends_alertdata` where fingerprint in ( select a.fingerprint from (SELECT fingerprint FROM `backends_alertdat...
  • sqlServer删除重复数据

    2013-08-12 16:40:07
    有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
  • sql删除表中重复数据的一个小技巧

    万次阅读 2018-07-11 15:44:48
    有时候我们需要删除表中的重复数据,如果手动去删除的话很慢,写sql又不会写,怎么办了,咱们可以...这样就实现了一个删除重复数据的效果哈哈哈。去重查询demo如下:select DISTINCT(name) from tbl_user_info这条s...
  • 只能删除重复次数为2的记录,多条重复记录时候,需要多次执行 delete from 表名 where id in (select a.id from (select 字段1,字段2,min(id) id from 表名 group by 字段1, 字段2 having count()>1) a) 其中: ...
  • 删除重复,保留最小id delete from table where exists (select 1 from table t1 where t1.重复字du段 = table.重复字段 and t1.id < table.id ) -----------看成是一个循zhi环,从表第一行到最后一行,dao...
  • sql删除表中重复记录 This article explains the process of performing SQL delete activity for duplicate rows from a SQL table. 本文介绍了对SQL表中的重复行执行SQL删除活动的过程。 介绍 (Introduction...
  • **#例1:根据手机号customer_id查询所有重复数据** SELECT * FROM aad_apply_main WHERE customer_id IN ( SELECT customer_id FROM aad_apply_main GROUP BY ...
  • SQL去除重复删除重复数据(高效)

    千次阅读 2014-11-24 10:58:00
    MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五...
  • mysql数据库删除重复数据保留一条

    万次阅读 多人点赞 2019-07-09 22:15:13
    现在身份证号identity_id和姓名name有很多重复数据,需要删除只保留一条有效数据。 2.模拟环境 1.等入mysql数据库,创建一个单独的测试数据库mysql_exercise create database mysql_exercise charset utf8; 2....
  • SQL Server删除重复数据的几个方法SQL Server删除重复数据的几个方法
  • 介绍了SQL 查询和删除重复字段数据的方法,有需要的朋友可以参考一下
  • oracle查找/删除重复数据(单个字段和多个字段条件) 单个字段: --查找重复的全部数据(单个字段) 思路: 1.根据字段tid分组,数量大于1的表示tid字段有重复的数据; 2.根据1查询出来的tid数据为条件,再查询全部...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 254,895
精华内容 101,958
关键字:

sql删除重复数据