sql重复数据只取一条记录】的更多相关文章

1.SQL SELECT DISTINCT 语句 在表中,可能会包含重复值.这并不成问题,不过,仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值. 语法: SELECT DISTINCT 列名称 FROM 表名称 使用 DISTINCT 关键词 1 SELECT DISTINCT Company FROM Orders 2.子查询限制返回结果 1 2 3 4 5 6 7 8 SELECT * FROM TestData  WHERE id IN  (  --…
select s.*  from (     select *, row_number() over (partition by PersonnelAccount order BY PersonnelID) as group_idx      from AUX_SpecialPersonnel ) swhere s.group_idx > 1…
删除重复数据保留name中id最小的记录 delete from order_info where id not in (select id from (select min(id) as id from order_info group by order_number) as b); delete from table where id not in (select min(id) from table group by name having count(name)>1) and  id i…
用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有ro…
项目需要筛选出不重复数据,以前没有做过,第一反应就是利用distinct处理,但是弄了好久也没搞出来,大家有知道的望告知下. 这次筛选没有使用distinct ,是利用group by ,利用id为唯一标示符(自增长),对按user进行排列,然后取重复项最小id(非重复项直接取唯一id),并以此id为条件查询,从而去除重复的数据. 数据格式为: 使用语句如下: select * from tbl_DPImg where ID in (select min(ID) from tbl_DPImg g…
SELECT * FROM tab_init WHERE id IN ( --根据Data分类获取数据最小ID列表 select max(id) from tab_init group by a,b ) 先找出重复数据的 最大的Id ( group by 后面可跟多列, 根据规则找到重复数据), 取出 id 最大或最小的 Id, 然后使用 in查询,就可以得到不重复的数据…
在平常开发中,去重复数据经常使用到,本人新手,接触Oracle也不久,开发中用到的小知识点,记录一下,老鸟可绕道,如果有写错的,请指正. 去重复记录可以使用distinct,当只查询一列数据时,可以轻松去掉重复的数据,当查询多列数据时,如果有一列的数据不相同,distinct则认为数据是不相同的,也就是数据将不会合并,这时类似是group by 某写字段的结果一样,此时的结果可能不是我们想要的.下面说下查询多列时去重复及合计重复记录的条数. 当做个不同的链接查询,得到的结果如下: select…
mysql删除重复数据只保留一条 新建一张测试表: CREATE TABLE `book` ( `id` char(32) NOT NULL DEFAULT '', `name` varchar(100) DEFAULT NULL, `parent_id` char(32) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; 测试数据: INSERT INTO `book` VALUES ('1', 'n1'…
-- 如表role_user的数据 ROLEID USERID -- 删除相同记录只剩下一条记录 根据两个字段查询重复数据 (roleid,userid) ) 删除重复数据只保留一条 delete from role_user where rowid not in (select min(rowid) from role_user group by roleid , userid ) 下面的只根据userid进行查询与删除 ),USERID ) ) );…
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有…
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 .查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people ) .删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people ) and peopleId not ) .查找表中多余的重复记录(多个字段) select * from vitae a )…
--用SQL语句,删除掉重复项只保留一条 --在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 --1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) --2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId…
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有…
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT * FROM people WHERE peopleId IN ( SELECT peopleId FROM people GROUP BY peopleId HAVING ) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 DELETE…
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 .查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people ) .删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people ) ) .查找表中多余的重复记录(多个字段) select * from vitae a ) .删除表中多余的重复记录(多个字…
DELETE FROM Bus_TerminalMessage_Keywords WHERE Content IN (select Content from Bus_TerminalMessage_Keywords group by Content having count(Content) > 1) AND ID NOT IN (select min(Id) from Bus_TerminalMessage_Keywords group by Content having count(Cont…
1.表结构与数据: CREATE TABLE tablezzl( id int, name ) ); 2.查询出重复的数据: 3.查询出要保留的重复数据: 4.最终的SQL: DELETE FROM tablezzl ) ) a) ) ) b) 5.补充 : 其中这样写mysql中不能如下这样写: DELETE FROM tablezzl ) ) 会报错:You can't specify target table 'tablezzl' for update in FROM clause,不能在…
  前提:相同的数据重复往数据库写入,导致存在仅主键Id不同的重复数据,现在需要去除重复数据,仅保留重复数据中Id最大的一条   思路: 1.找出存在重复数据的记录,并取重复数据中最大的Id值 2.删除记录中不包含最大Id值的记录   注意:该SQL会删除没有重复数据的记录 实现: DELETE FROM [Log_IIS].[dbo].[IISLog_table] WHERE id not in  (select MAX(Id) from [IISLog_table] group by [Re…
第二篇文章测试说明 开发测试中,难免会存在一些重复行数据,因此常常会造成一些测试异常. 下面简单测试mysql表删除重复数据行的相关操作. 主要通过一下三个大标题来测试说明: 02.尝试删除dept_name重复的列 03 尝试删除多个字段(dept_name和db_source)都重复的字段! 04 是否可以使用两重for循环来判断是否存在重复行并进行删除! 数据库的表不要随便删除,需要删除部分数据的话请事先备份成SQL,或者创建备份表.不然-- 后端一时爽,运维火葬场. 01.建表 (随手找…
目的:去除(或删除)一个表里面手机号重复的数据,但是需要保留其中一个记录,换句话说,表里面手机号不为空的数据,一个手机有且只有一条记录 表结构: CREATE TABLE `account` ( `id` ) NOT NULL, `phone` ) DEFAULT NULL, PRIMARY KEY (`id`) ); 插入一些数据: '); '); '); '); '); '); '); '); '); '); '); '); '); '); '); '); '); '); '); 查询一下现…
查询 text 表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from text 删除 text 表中,重复出现的数据只保留 ID 最大的一条数据,没有重复的数据不删除. AND id not in( select id from (select max(id) as id,count(user_name) as count from text order by count desc) as tab) AND id no…
需要使用:分区函数用法(partition by 字段) select *,row_number() over(partition by item order by date  ) as index from tab 分区索引 ------------------------------------------- SQL Server select * from (select * , row_number() over(partition by id order by state desc)…
--方法一 select * from tb_supply where rowid=any(select max(rowid) from tb_supply group by phone_id) --方法二 select * from tb_supply where rowid in (select max(rowid) from tb_supply group by phone_id)…
select * from table_a where id in (select min(id) from table_a group by a) )) SUBSTRING_INDEX(cids,',',1))截取字符串 group by 按照什么分组 select min(id) from table_a group by a 根据a来分组找出最小的id…
查询及删除重复记录的SQL语句   1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断   select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)   2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录   DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING C…
转自:http://www.cnblogs.com/252e/archive/2012/09/13/2682817.html 查询及删除重复记录的SQL语句   1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断   select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)   2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录   DELE…
http://blog.csdn.net/anya/article/details/6407280…
以下sql是a,b两张表通过关联条件id修改a表值,如果b表有重复数据记录,选第一条更新,红色条件为附加限制条件,具体视情况而定: UPDATE a SETname = b.fname,pwd = b.lnameFROM bWHERE a.id = b.id AND a.id in (2,3) 以下sql为查询单表中重复记录: select * from b t1 where t1.fname in  (select t2.fname from b t2 group by t2.fname ha…
如何用SQL排除重复结果只取字段最大值的记录?要求得到的结果(即是PID相同的记录只取ID值最大的那一条). select * from [Sheet1$] a from [Sheet1$] where PID=a.PID and ID>a.ID) select a.* from [Sheet1$] a inner join (select PID,max(ID) as max_id from [Sheet1$] group by PID) b on a.PID=b.PID and a.ID=b…
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有r…