有这样一个题,用一条SQL语句 查询出每门课都大于80分的学生姓名. 下面是表 分析,查询每门课程都大于80的学生.SELECT DISTINCT name FROM dbo.student WHERE fenshu<=80查询出来的结果是李四王五张三都有. 小于等于80的语句SELECT name FROM dbo.student WHERE fenshu<=80 只有张三一个. 这个是重复的,值得利用,用not in(不在次语句中的)语句将两句拼写到一块如下: SELECT DISTINC…
删除重复行 user_info: -- 单字段筛选重复行 SELECT *from user_info WHERE NAME in ( SELECT NAME from user_info GROUP BY NAME HAVING COUNT(NAME)>1); -- 删除重复行,保留id最小的数据SELECT *from user_info WHERE NAME in ( SELECT NAME from user_info GROUP BY NAME HAVING COUNT(NAME)>…
感谢孙潇楠前辈的总结,地址http://www.cnblogs.com/sunxiaonan/archive/2009/11/24/1609439.html 例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b      …
本文转载自http://www.cnblogs.com/sunxiaonan/archive/2009/11/24/1609439.html 例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b              …
首先新建表: --创建示例表 CREATE TABLE t ( id ,) PRIMARY KEY, a ), b ) ) --插入数据 INSERT INTO t SELECT 'aa','bb' UNION ALL SELECT 'a1','bgb' UNION ALL SELECT 'aa','bb' UNION ALL SELECT 'a2','bb' UNION ALL SELECT 'aa3','beeb' UNION ALL SELECT 'aa','bb' UNION ALL S…
例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b                 pp 5               b                 pp 6               c           …
例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b                 pp 5               b                 pp 6               c           …
例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b                 pp 5               b                 pp 6               c           …
--1.建立表:Coursecreate table Course( ID int identity(1,1),--ID Student varchar(20) ,--学生 Sub varchar(20) ,--课程) --2.插入数据INSERT INTO CourseVALUES ('张三','语文'),('李四','语文' ),('王五','语文' ) INSERT INTO CourseVALUES ('张三','语文'),('李四','英语' ),('王五','数学' ) INSERT…
SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 ) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 ) ) 3.查找表中多余的重复记录(多个字段) ) 4.删除表中多余的重复记录(多个字段),只留有rowid最小的记录 ) ) 5.查找表中多余的重复记录(多个字段),不包…
删除重复的数据,在平时的工作中还是会和碰到的,感觉挺有用,从网上摘录的,记在这里,以备需要时查阅 --方法一,IN方式,适合2000/2005/2008,6728 毫秒 DELETE [student_L] WHERE id NOT IN ( SELECT MAX(id)--min(id) FROM [student_L] GROUP BY [stuid], [stuname], [Birthday], [AreaOrganID] ) /* SQL Server 分析和编译时间: CPU 时间=…
--创建测试表 CREATE TABLE TEST ( DEPTNO ), DNAME ), LOC ) ); --插入测试数据 , 'test1', 'test2'); , 'test1', 'test2'); , 'test2', 'test3'); , 'test2', 'test3'); --查询所有记录 SELECT * FROM TEST; --查询重复的记录 SELECT * FROM TEST WHERE deptno IN( ) --查询重复记录-1条记录 SELECT * F…
用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 )…
  SELECT row=ROW_NUMBER() OVER(PARTITION BY 重复字段一,重复字段二 ORDER BY GETDATE()) ,* FROM 筛选重复表名     具体实现如下:   users表数据 1.查询重复数据 结果如下: 2.删除 row != 1,根据 row != 1 返回id,进行删除 结果如下:…
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,不能在…
情景: 我们的数据库中可能会存在很多因各种原因而重复的记录,我们需要对这些重复的记录进行删除,每组组重复的记录只保留一条就行 例如我们有这么个表:两个框框都是有重复记录的,红框和绿框都只需要留下一条,其他的都干掉. 前提: 1:每天记录都要有一个唯一id 2:每组重复的记录要有字段能进行分组,例如上面我们按name.class.age.score相同的就是一组. 数据宝贵,请先备份!!! 数据宝贵,请先备份!!! 数据宝贵,请先备份!!! 放上整条SQL: DELETE FROM "t_hw_t…
总的思路就是先找出表中重复数据中的一条数据,插入临时表中,删除所有的重复数据,然后再将临时表中的数据插入表中.所以重点是如何找出重复数据中的一条数据,有三种情况 1.重复数据完全一样,使用distinct select distinct * from table 2.id列不同,id类型为int,自增字段,使用聚合函数max或其他 select * from  table where id in( select MAX(id) FROM table  group by "分组字段"ha…
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 (se…
--首先将不是重复的数据提取出来,保存到一个临时表中 select distinct * into #temp from JX_Score --然后删除原来的表 delete from JX_Score --最后往里面插入临时表的数据 insert into jx_score select * from #temp…
--查找表中多余的重复记录select * from code_xz where code in (select code from code_xz group by code having count(1)>1) --删除表中多余的重复记录,只留有pk_uid最小的记录delete from code_xz where code in (select code from code_xz group by code having count(code) > 1) and pk_uid not…
1.如果有ID字段,就是具有唯一性的字段         delect   table   where   id   not   in   (             select   max(id)   from   table   group   by   col1,col2,col3...     )     group   by   子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同.                 2,如果是判断所有字段…
DELETE E FROM t E where E.id> ( SELECT MIN(X.id) FROM t X WHERE X.name = E.name );…
用下面的语句就报语法出错: delete from tab_record where recordid not in (select  min(c.recordid) as recordid from  tab_record  c group by (c.dev_Id+c.StartTime+c.EndTime+c.CardNum)); 报错如下:You can't specify target table '表名' for update in FROM clause 找到替代方案,改用下面的,…
delete RemoteDetection WHERE REMOTEDETECTIONID IN ( select ID from ( select MIN(REMOTEDETECTIONID) ID,r.VLPN,r.PASSDATETIME from RemoteDetection r inner join ( select VLPN,PASSDATETIME,COUNT(1) as num from RemoteDetection where 1=1 group by VLPN,PASS…
DELETE a FROM tbBuilding a WHERE EXISTS (SELECT 1 FROM tbBuilding b WHERE b.Province = a.Province AND b.City = a.City AND b.County = a.County AND b.Street = a.Street AND b.Road = a.Road AND b.BuildingGroup = a.BuildingGroup AND b.Building = a.Buildin…
delete from M_FACTOR_DATA_TEST a where (a.factor_id,a.data_date,a.stock_code) in (select factor_id,data_date,stock_code from M_FACTOR_DATA_TEST group by factor_id,data_date,stock_code having count(*) > 1) and rowid not in (select min(rowid) from M_FA…
DELETE FROM py_bond_shenzhen_exchange_opinion_2_1 WHERE id NOT IN (SELECT id FROM (SELECT min(id) AS id FROM py_bond_shenzhen_exchange_opinion_2_1 GROUP BY notice_date, notice_title) temp)…
delete from A_TO_NOW where yuan_name in (select   yuan_name from A_TO_NOW group by   yuan_name   having count(yuan_name) > 1) and rowid not in (select min(rowid) from   A_TO_NOW group by yuan_name having count(yuan_name )>1)…
为了性能考虑,在阅读之前提醒大家,如果有子查询,子查询查询到的数据最好不要超过总数据量的30%. 查询有重复数据的记录 select * from F group by a,b,c,d having count(*)>1 select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp SQL删除重复数据方法 例如:  id name…