精华内容
下载资源
问答
  • 第一个假如有一个数据表sm_movies里面有重复的电影想去掉重复的并且保存一个movies_id值最大的那一个DELETEFROM`sm_movies`WHEREmovies_idNOTIN(SELECT*FROM(SELECTMAX(movies_id)asmovies_idFROM`sm_movies`...

    第一个

    假如有一个数据表sm_movies

    a80666c6db05c7994ef92b1c34923469.png

    里面有重复的电影想去掉重复的并且保存一个movies_id值最大的那一个DELETE FROM `sm_movies` WHERE movies_id NOT IN

    (

    SELECT * FROM (

    SELECT MAX(movies_id) as movies_id FROM `sm_movies` GROUP BY title

    ) AS tmp

    );

    首先使用下面语句查出来重复的title记录,并从每组中取中movies_id最大的那个idSELECT MAX(movies_id) FROM `sm_movies` GROUP BY title

    然后用 not in把查出来的movies_id排除掉,剩下的就是要删除的记录

    第二个

    如下图

    8df48dc162c1ce6401535a490bb9cf53.png

    里面有很多重复的项重复的条数还不固定  本来short_id应该是不能重复的

    想实现的是让short_id 唯一 其它的都删除掉 只留下一个  user_id 字段值最大的出来delete from user

    where   short_id in ( select short_id from (select short_id    from kl_user group by short_id      having count(short_id) > 1) as tem)

    and     user_id not in (select user_id from (select MAX(user_id) as user_id from kl_user group by short_id     having count(short_id)>1) as temp )

    可以看到语句有两个条件

    条一个条件把 short_id 这个字段有重复的取出来

    第二个条件从重复的short_id中把user_id值最大的那一条取出来,把这一条除外,这样删除的时候就留下来啦

    展开全文
  • sql语句查询重复数据

    千次阅读 2021-05-19 09:50:15
    查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC 一。查找重复记录 1。查找全部重复记录 Select * From 表 Where 重复...

    查找所有重复标题的记录:

    SELECT *
    FROM t_info a
    WHERE ((SELECT COUNT(*)
    FROM t_info
    WHERE Title = a.Title) > 1)
    ORDER BY Title DESC

    一。查找重复记录

    1。查找全部重复记录

    Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)

    2。过滤重复记录(只显示一条)

    Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)

    注:此处显示ID最大一条记录

    二。删除重复记录

    1。删除全部重复记录(慎用)

    Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)

    2。保留一条(这个应该是大多数人所需要的 _

    Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)

    注:此处保留ID最大一条记录

    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 peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

    and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>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)

    补充:

    有两个以上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

    1、对于第一种重复,比较容易解决,使用

    select distinct * from tableName

    就可以得到无重复记录的结果集。

    如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

    select distinct * into #Tmp from tableName

    drop table tableName

    select * into tableName from #Tmp

    drop table #Tmp

    发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

    2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

    假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

    select identity(int,1,1) as autoID, * into #Tmp from tableName

    select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID

    select * from #Tmp where autoID in(select autoID from #tmp2)

    展开全文
  • 【实例简介】【实例截图】【核心代码】--查询重复数据方法一select COUNT(*) from HB_BORROWER_INFORMATION awhere (a.APPLICATION_CODE) in (select APPLICATION_CODE from HB_BORROWER_INFORMATION group by ...

    【实例简介】

    【实例截图】

    【核心代码】

    --查询重复数据方法一

    select COUNT(*) from HB_BORROWER_INFORMATION a

    where (a.APPLICATION_CODE) in (

    select APPLICATION_CODE from HB_BORROWER_INFORMATION group by APPLICATION_CODE

    having

    count(*) > 1)

    and rowid not in (select min(rowid) from HB_BORROWER_INFORMATION group by APPLICATION_CODE having count(*)>1)

    --查询重复数据方法二

    SELECT

    ROWID,

    a.BORROWER_NO

    FROM

    HB_PLATFORM_CUSTOMER a

    WHERE

    a.rowid !=(

    SELECT

    MAX( ROWID )

    FROM

    HB_PLATFORM_CUSTOMER b

    WHERE

    a.BORROWER_NO = b.BORROWER_NO

    );

    --删除重复

    DELETE

    from MCG_FLOW_TRANSACTION WHERE (ORDER_CODE) IN ( SELECT ORDER_CODE FROM MCG_FLOW_TRANSACTION GROUP BY ORDER_CODE HAVING COUNT(ORDER_CODE) > 1) AND

    ROWID NOT IN (SELECT MIN(ROWID) FROM MCG_FLOW_TRANSACTION GROUP BY ORDER_CODE HAVING COUNT(*) >

    1);

    --查询重复数据方法二

    SELECT * FROM (

    SELECT

    ROW_NUMBER() OVER(

    PARTITION BY a.BID_ID ORDER BY a.LOAN_DATE DESC) rn,

    a.*

    FROM

    HB_BORROWER_INFORMATION_NU a

    )

    WHERE rn>1

    展开全文
  • select * into tmp_lzw1 From tb_sc_user_cz200905 a where exists (select * From dhhm b where b.col001=a.servnumber)select servnumber,max(chgamt) as chamt,recdate into tmp_lzw2 from tmp_lzw1 where chgamt...

    select * into tmp_lzw1 From tb_sc_user_cz200905 a where exists (select * From dhhm b where b.col001=a.servnumber)

    select servnumber,max(chgamt) as chamt,recdate into tmp_lzw2 from tmp_lzw1 where chgamt>=50 group by servnumber,recdate

    select identity(int, 1, 1) rn,a.* into tmp_lzw3 from tmp_lzw2 a order by servnumber,chamt desc

    select * into tmp_lzw4 from tmp_lzw3 a where a.rn = (select min(rn) from tmp_lzw3 b where a.servnumber = b.servnumber)

    create table tmp_lzw_stopkey_us30(dhhm varchar2(11),stopkey varchar2(10));

    create table tmp_lzw_stopkey_us30new nologging as

    select * from (select dhhm,stopkey,row_number()over(partition by stopkey order by dhhm desc )rn

    from tmp_lzw_stopkey_us30)

    where rn=1;

    select * From tmp_lzw_stopkey_us30new

    展开全文
  • 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(code)来判断 select * from MLTY_MDM_PRODUCT where code in (select code from MLTY_MDM...
  • 前言: having子句只用在分组查询(group by)条件下,用作分组查询结果的条件过滤 去除重复数据,只保留一条重复的数据 DELETE FROM `user` WHERE name IN ( SELECT name FROM ( SELECT name FROM
  • delete from table where rowid not in (select max(r由热心网友提供的答案1:大家说的没错,只需要一个循环就行了,因为你的数据都是一样,只要控制循环,执行1000次就好了。比防采集。delete Emp p where rowid in...
  • 海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复?如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一直使用这条语句进行去重:delete from ...
  • SQL语句,删除重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除重复的呢?
  • 当测试数据库中,有重复数据会导致selectOne报错时,可以使用这句sql,只保留id最小的一条数据,删除其余的重复数据。 二、场景实例 例如有下方这样的数据: id | name | openid 1 | 张三 | 2_0_10001234 2 ...
  • 一、问题描述数据表如下图上述是ecshop中的商品表(ecs_goods),远程采集数据时,由于采集代码写的不够严谨,导致sku_id,goods_sn,goods_name三个字段中的数据出现了大量重复。二、数据处理过程中出现的错误...
  • 原答案:专 sql server环境属下: select ID,SN,CreateDate,dayUse from ( select ID,SN,CreateDate,dayUse, row_number() over(partition by SN,CreateDate order by dayUse desc) as RowNum from ...
  • 查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) ...
  • Oracle查询并删除重复记录的SQL语句2010-07-20 00:00出处:中国IT实验室作者:佚名【我要评论】 [导读]查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断。企业软件热点文章Java调用Dll存在指针或...
  • 这将把所有的资料都抓出,无论资料值有无重复。在资料处理中,我们会经常碰到需要找出表格内的不同资料值的情况。换句话说,我们需要知道这个表格/栏位内有哪些不同的值,而每个值出现的次数并不重要。这要如何达成...
  • 情况一:表中存在完全重复的的数据,即所有字段内容都是相同的 create table # (用户ID int, 姓名 varchar(10), 年龄 int ) insert into # select 111, '张三', 26 union all select 222, '李四', 25 union all ...
  • //新建一张临时表存单份不重复数据 create table temp as select DISTINCT * from A ; //清空原表内容 delete from A; //把数据重新插入原表 insert into A select * from temp; //删除临时表 drop table temp; ...
  • 下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一... 以上就是小编为大家带来的thinkphp中多表查询中防止数据重复sql语句(必看)的全部内容了,希望对大家有所帮助,多多支持聚米学院~
  • 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people ...
  • 数据开发时我们常常会需要把数据库中重复的记录查出来或直接删除数据库中重复记录,下面我来给大家总结一些方法,有需要的朋友可参考。常用的语句1、查找表中多余的重复记录,重复记录是根据单个字段(mail_id)来...
  • 展开全部查询可32313133353236313431303231363533e58685e5aeb931333337613931用group by语句删除则用delete语句。1、创建测试表,插入测试数据:createtabletest(idint,namevarchar2(20));insertintotestvalues(1,...
  • Oracle 使用一条语句删除重复数据在大的数据库应用中,经常因为各种原因遇到重复的记录,造成数据的冗余和维护上的不便1.用rowid方法2.用group by方法3.用distinct方法1。用rowid方法据据oracle带的rowid属性,进行...
  • 1、查询(字段1, 字段2, 字段3)全部重复相同的数据 SELECT * FROM 表 WHERE (字段1, 字段2, 字段3) IN (SELECT 字段1, 字段2, 字段3 FROM 表 GROUP BY 字段1, 字段2, 字段3 HAVING COUNT(*) > 1) ORDER BY ...
  • 目录 1、使用背景 2、代码实现 3、SQL语句实现 4、原理总结 5、参考文章 ... 重复数据下图所示: 3、SQL语句实现 DELETE FROM cos_study_group_user WHERE Id NOT IN ( SELECT Id FRO...
  • 1064 - You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near ‘where c.role_id not in (select b.role_id from role c group...
  • 查询重复数据代码如下select * from tableA where catentry_id in (select distinct catentry_id from tableA group by catentry_id,descitem_id having count(*)>1)@--2.建立临时表,将所有重复数据存入该表代码...
  • 案例:id 姓名 课程名称 分数1 张三 数学 692 李四 数学 893 张三 数学 69删除除了自动编号不同,其他都相同的学生冗余信息---------------------------------------------------------------------...
  • 添加新数据:INSERT INTO () VALUES ()如:INSERT INTO t_student (student_id,student_name,student_age,student_sex) VALUES (1,'大毛',18,'男');其中列名可以省略,省略之后要求插入的值必须与列一一对应:INSERT...
  • 我们经常会碰到需要删除数据表中重复记录,下面我来总结了几种能删除重复记录并助相对来讲效率是非常不错的,有需要了解的朋友可进入参考。创建一个表用来存放,要删除的记录的id信息:代码如下复制代码CREATE TABLE ...
  • sqlserver查询去掉重复数据的实现

    千次阅读 2021-01-17 04:54:30
    说明:只要数据表“列名”数据相同,则说明是两条重复数据(ID为数据表的主键自动增长)。推荐使用方法一-- 方法一select * from 表名 A where not exists(select 1 from 表名 where 列名=A.列名 and ID补充:SQL ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 220,578
精华内容 88,231
关键字:

sql语句去除重复数据