CREATE TABLE bb1
(
name character varying,
value character varying,
id bigint
)
truncate bb1;
INSERT INTO bb1(name, value, id)VALUES ('a', '11', nextval('public.hibernate_sequence'));
INSERT INTO bb1(name, value, id)VALUES ('a', '12', nextval('public.hibernate_sequence'));
INSERT INTO bb1(name, value, id)VALUES ('a', '13', nextval('public.hibernate_sequence'));
INSERT INTO bb1(name, value, id)VALUES ('c', '22', nextval('public.hibernate_sequence'));
INSERT INTO bb1(name, value, id)VALUES ('c', '21', nextval('public.hibernate_sequence'));
INSERT INTO bb1(name, value, id)VALUES ('d', '31', nextval('public.hibernate_sequence'));
INSERT INTO bb1(name, value, id)VALUES ('e', '32', nextval('public.hibernate_sequence'));
truncate bb1;
INSERT INTO bb1(name, value, id)VALUES ('a', '11', 1);
INSERT INTO bb1(name, value, id)VALUES ('a', '12', 2);
INSERT INTO bb1(name, value, id)VALUES ('a', '13', 3);
INSERT INTO bb1(name, value, id)VALUES ('c', '21', 4);
INSERT INTO bb1(name, value, id)VALUES ('c', '22', 5);
INSERT INTO bb1(name, value, id)VALUES ('d', '31', 6);
INSERT INTO bb1(name, value, id)VALUES ('e', '32', 7);
select * form bb1
查询重复数据 根据单个字段(name)判断
select name,count(*) from bb1 group by name having count(*)>1
删除重复数据,保留重复数据中ID最大的一个, 根据单个字段(name)判断
delete from bb1 where name in (select name,count(*) from bb1 group by name having count(*)>1) and id not in(select max(id) from bb1 group by name having count(*)>1)
truncate bb1;
INSERT INTO bb1(name, value, id)VALUES ('a', '11', 1);
INSERT INTO bb1(name, value, id)VALUES ('a', '11', 2);
INSERT INTO bb1(name, value, id)VALUES ('a', '13', 3);
INSERT INTO bb1(name, value, id)VALUES ('c', '21', 4);
INSERT INTO bb1(name, value, id)VALUES ('c', '21', 5);
INSERT INTO bb1(name, value, id)VALUES ('d', '31', 6);
INSERT INTO bb1(name, value, id)VALUES ('e', '32', 7);
select * form bb1
查询重复数据 根据多个字段(name,value)判断
select name,name,count(*) from bb1 group by name,value having count(*)>1
删除重复数据,保留重复数据中ID最大的一个, 根据多个字段(name,value)判断
delete from bb1 a where (a.name,a.value) in (select name,value from bb1 group by name,value having count(*)>1) and a.id not in(select max(id) from bb1 group by name,value having count(*)>1)
分享到:
相关推荐
在Access中一般只能查找10行大概20条重复记录,这样程序就可以任意指定表及多字段检索重复记录,并把重复的记录移除到一个临时表中,并不是进行真正删除,你可以进行恢复。但是执行第二次查找时则自动删除上次查找的...
Oracle查询重复数据并删除,只保留一条记录.docx
查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...
该文档是本人在实验过程中遇到的一个需求,之后解决了,特此写一个文档,实现一条SQL语句删除数据库某一个表中重复的记录。(重复的记录只保留一条,其他的被删除)
彻底理解删除重复记录,只保留一条.sql
mysql彻底理解删除重复记录sql脚本,只保留一条记录
彻底理解删除重复记录,只保留一条,sql脚本
Oracle查询重复数据与删除重复记录方法,Oracle查询重复数据与删除重复记录方法
删除重复的记录,并保存第一条记录或保存最后一条记录
主要介绍了SQL语句实现删除重复记录并只保留一条,本文直接给出实现代码,并给出多种查询重复记录的方法,需要的朋友可以参考下
通过存储过程,删除Mysql数据库表中的重复记录,只保留一条;
本文讲一下数据库中通常存在一些冗余数据,如重复记录就是一种,那这样的记录如何删除呢?
重复记录分为两种,第一种是完全重复的记录,也就是所有字段均重复的记录,第二种是部分关键字段重复的记录,例如Name字段重复,而其它字段不一定重复或都重复。
以下就重复记录删除的问题作一... 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除 代码如下: select distinct * into #Tmp from tableName drop table tableName select * into tableName from
SQL根据多字段删除重复项,其结果只以ID最新(大)保留一个条记录。超级简单的代码,保证人人都能看懂。删除多条重复的名称,并且保留ID最小的那个。删除重复数据,并且保留最大的ID。
数据库中存在重复记录,删除保留其中一条(是否重复判断基准为多个字段) 解决方案 碰到这个需求的时候,心里大概是有思路的。最快想到的是可以通过一条sql语句来解决,无奈自己对于复杂sql语句的道行太浅,所以想找...
–处理表重复记录(查询和删除) /****************************************************************************************************************************************************** 1、Num、Name相同的...