sql案例:删除多条内容相同的数据,只保留一条

原创 2013年12月04日 10:20:49

在面试中遇到的一个问题

 

create table t_delete_test (id number primary key,name varchar(20));

insert into t_delete_test (id,name) values(1,'a');
insert into t_delete_test (id,name) values(2,'b');
insert into t_delete_test (id,name) values(3,'b');
insert into t_delete_test (id,name) values(4,'a');
insert into t_delete_test (id,name) values(5,'c');
insert into t_delete_test (id,name) values(6,'c');
insert into t_delete_test (id,name) values(7,'d');

select * from t_delete_test;

 

 

 

        ID NAME

---------- --------------------

         1 a

         2 b

         3 b

         4 a

         5 c

         6 c

         7 d

 

 

delete from t_delete_test t1 where
t1.name in (select t2.name from t_delete_test t2 group by t2.name having count(1)>1)
and 
t1.id not in(select min(t3.id) from t_delete_test t3 group by t3.name having count(1)>1);

 

 

备注:

select t2.name from t_delete_test t2 group by t2.name having count(1)>1 //查询名字至少有一条相同的数据

select min(t3.id) from t_delete_test t3 group by t3.name having count(1)>1 //查询名字至少有一条的数据,并且只显示最小的主键号

 

 

 

Sql Server 查询多条重复数据 删除并保留一条

总是不会查重和删除多余数据 delete sysdba.PRODUCT from sysdba.PRODUCT a where exists (select Name,ACTUALID...
  • lutaotony
  • lutaotony
  • 2016年09月28日 17:15
  • 1840

SQL中遇到多条相同内容只取一条的最简单实现

SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别, 这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项。 如下:表timeand 针对...
  • lizeyang
  • lizeyang
  • 2014年01月17日 21:38
  • 8414

SQL SERVER 将数据库中重复数据删除且只保留一条

-- 设置可唯一识别的字段(此处是lmt) update update_t_datameas set lmt = t.lmt from update_t_datameas s, ( SELECT s...
  • pang_da_xing
  • pang_da_xing
  • 2017年12月25日 23:26
  • 101

SQL删除表中的重复记录(多个字段),只留一条。

在一家韩国电商的面试中被问到了,当时一脸懵逼,没想法…… 回来想了想,还是有些思路的……唉……临场真是弱啊…… 第一步:查询重复记录 SELECT * FROM TableName WHERE ...
  • sinat_36246371
  • sinat_36246371
  • 2016年10月13日 13:35
  • 1277

SQL除去值相同的记录,只保留一条

假如有item表,有四列,id, c1, c2, c3,数据如下:id c1 c2 c3 --------------- 1 c11 c21 c31 2 c11 c21 c31 3 ...
  • sinat_36246371
  • sinat_36246371
  • 2017年01月17日 13:42
  • 342

SQL针对单列删除重复数据只保留一条id最大的数据

delete from t_student  where id in (  SELECT id from ( SELECT * from t_student   where  name in (...
  • qq_27292113
  • qq_27292113
  • 2016年10月11日 13:26
  • 1389

关于SQL删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 ...
  • ccit0519
  • ccit0519
  • 2012年09月28日 18:19
  • 2367

SQL Server 删除重复记录,只保留一条记录

有张表格之前没有设计关键字段的唯一约束,导致有时候执行插入操作时不小心执行了多次就出现了重复记录,后面重新加入唯一约束,由于已经有了重复记录,无法添加,需要先删除重复记录。         看了网上的...
  • eriato
  • eriato
  • 2013年12月19日 16:08
  • 16747

sql查询-多条数据相同,取其中一条

(说明,参考的网上的文章,自己做了测试) 问题: 表1 学校 年级 班级 姓名 性别 年龄 1中 1 2班 张 男 20 --这个曲调 2中 3 1班 马 男 17 1中 2 2班 李...
  • happy_ddm
  • happy_ddm
  • 2011年09月20日 08:35
  • 7625

Oracle删除重复记录只保留一条数据的几种方法

Oracle删除重复记录只保留一条数据的几种方法 1. 问题描述 BBSCOMMENT表为BBSDETAIL的从表,记录商户评价信息。因为数据倒腾来倒腾去的,有很多重复数据。表结构如下: C...
  • haiross
  • haiross
  • 2014年08月12日 11:53
  • 22433
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql案例:删除多条内容相同的数据,只保留一条
举报原因:
原因补充:

(最多只允许输入30个字)