美文网首页
sql中某字段重复记录的查询和处理

sql中某字段重复记录的查询和处理

作者: 丹丹后院 | 来源:发表于2017-10-24 10:53 被阅读0次

1.查询重复记录

select 字段 from 表  group by 字段 having count(字段)>1;

2.只显示重复记录中的一条ID值最小或最大的记录

select * from 表 where 字段 in (select 字段 FROM 表 group by 字段

having count(字段 )>1 );

上面sql语句把字段重复的的所有值全部显示出,那么我们如何只显示一条id最小或最大的记录呢?

关键是在上面sql的where子句中select 语句

修改为

select min(id) from 数据表 group by 字段 having count(字段)>1

查询重复记录字段中ID最小值:

select  * from  数据表 where 字段 in  (select min(id) from 数据表 group by 字段 having count(字段)>1 );

查询重复记录字段中ID最大值:

select  * from  数据表 where 字(select min(id) form 数据表 group by 字段  having count(重复记录字段)>1 );

3.对重复记录执行delete update

例如只保留最小id的一条

delete 数据表 where id not in 

(

select 表别名.字段别名 from

 (select min(id) 字段别名  from 数据表 group by 字段 having count(字段)>1) as 表别名

);

4.group by  字段 having count与distinct的区别

distinct只是将重复的行从结果中出去;

group by是按指定的列分组,一般这时在select中会用到聚合函数。

distinct是把不同的记录显示出来。

group by是在查询时先把纪录按照类别分出来再查询。

group by 必须在查询结果中包含一个聚集函数,而distinct不用。

总结:

对于重复记录关键是查出 :采用group by 字段 having count(字段)>1

取得最小id的一条(很关键) :采用min(id)

相关文章

  • oracle查询重复数据方法

    SQL重复记录查询 (一) 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 2、删除...

  • sql中某字段重复记录的查询和处理

    1.查询重复记录 select 字段 from 表 group by 字段 having count(字段)>1;...

  • mysql 查询数据库某张表的所有字段、类型、注释及非空

    查询某张表中的所有字段、字段类型,字段说明、约束、允许为空,使用以下sql 语句: SELECT b.COLUMN...

  • 数据库DQL

    基础查询 指定字段查询 指定字段组合不重复记录 条件查询 where后面可以接的条件 举例 结果集排序 多字段排序...

  • day37-mysql

    1、DDL 指定字段查询 指定字段组合不重复记录 条件查询 where后可接的条件 举例 结果集排序 多字段排序 ...

  • 四、Oracle之查询语句

    1、基本查询语句 2、在SQL*PLUS中设置格式 3、查询表中所有字段及指定字段 查询所有字段 查询指定字段 4...

  • 12ADD连接外部数据

    常用SQL语言 查询数据 select * from [data$] 查询某几个字段 select 姓名,年龄 f...

  • 数据库表的基本操作DQL2

    #字段控制查询 去除重复记录 去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sa...

  • 4.SQL之数据查询(DQL)

    DQL--数据查询语言 谓词:select 查询数据 基本语法 基础查询 查询多个字段 去除重复记录 起别名 条件...

  • mysql查询

    字段控制查询去除重复记录: 查询所有学生name信息,去除重复信息 SELECT DISTINCT name FR...

网友评论

      本文标题:sql中某字段重复记录的查询和处理

      本文链接:https://www.haomeiwen.com/subject/szftpxtx.html