下面先来看看例子:

代码如下

table

id name

1 a

2 b

3 c

4 c

5 b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。

代码如下

select distinct name from table

得到的结果是:

name

a

b

c

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

代码如下

select distinct name, id from table

结果会是:

id name

1 a

2 b

3 c

4 c

5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。

我们再改改查询语句:

select id, distinct name from table

现在将完整语句放出:

代码如下

select *, count(distinct name) from table group by name

结果:

id name count(distinct name)

1 a 1

2 b 1

3 c 1

上面简单但有些地方是不能完成我们的需要的,下面记录了些常用的重复记录操作语句

查询及删除重复记录的方法

(一)

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)

mysql group by 去除重复_mysql中distinct和group by过滤删除重复行相关推荐

  1. distinct mysql性能_MySQL中distinct与group by之间的性能进行比较

    最近在网上看到了一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论,测试过程在个人计算机上,可能不够全面,仅供参考. 测试过程: 准备一张测试表 CREATE TABLE `test_test` ...

  2. distinct mysql性能_MySQL中distinct和group by性能比较

    MySQL中distinct和group by性能比较[转] 之前看了网上的一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论(仅在个人计算机上测试,可能不全面,仅供参考) 测试过程: 准备一张 ...

  3. mysql的group语句_MySQL中distinct与group by语句的一些比较及用法讲解

    这篇文章主要介绍了MySQL中distinct与group by的一些比较及用法讲解,二者在查询操作中的用法有很多相似之处,需要的朋友可以参考下 在数据表中记录了用户验证时使用的书目,现在想取出所有书 ...

  4. MySQL中distinct和group by性能比较

    MySQL中distinct和group by性能比较[转] 之前看了网上的一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论(仅在个人计算机上测试,可能不全面,仅供参考) 测试过程: 准备一张 ...

  5. sql 中distinct和group by

    sql中distinct和group by都可以用于去重复,distinct是将重复的行从结果中出去,group by是按指定的列分组.区别是group by 中可以包含聚合函数. 如下所示的表结构, ...

  6. 在Excel中怎么筛选唯一值或删除重复值以及对其应用条件格式

    重复值是行中的所有值与另一个行中的所有值完全匹配的值,筛选唯一值时,将临时隐藏重复的值,但删除重复值时,则会永久删除重复值.最好先筛选唯一值或对其应用条件格式,以便在删除重复值之前确认结果是所需的.下 ...

  7. mysql去掉两个最高分_MySQL中查询、删除重复记录的方法大全

    前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as coun ...

  8. mysql+distinct+max_MySQL中distinct与group by之间的性能进行比较

    最近在网上看到了一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论,测试过程在个人计算机上,可能不够全面,仅供参考. 测试过程: 准备一张测试表 CREATE TABLE `test_test` ...

  9. mysql语句中怎么去重复_mysql中删除重复记录sql语句

    在sql中我们经常会碰到有重复的一些数据,下面我来介绍在mysql中删除重复记录的多种方法,有需要的朋友可参考参考. 删除重复记录方法一: 1. 新建一个临时表 代码如下 复制代码 create ta ...

最新文章

  1. 团队项目个人进展——Day10
  2. 南开大学提出最新边缘检测与图像分割算法,精度刷新记录(附开源地址)
  3. AngularJS鼠标进入划出事件
  4. linux error errno 错误对照
  5. HALCON示例程序forest.hdev识别森林中的树
  6. 值类型与引用类型传递的艺术
  7. SAP License:MM中的几个概念
  8. 商业认知,近期与部分中小创业者一起吃饭,忽然有人谈到现在创业越来越难
  9. The First Python man in Github
  10. Html代码打包后如何修改,html代码打包封装成APP教程
  11. nginx根据URL地址、user_agent设备类型、文件扩展名 实现动静分离代理转发
  12. Oozie5.2.1源码编译及安装部署
  13. spssχ2检验_spss交叉表分析方法与步骤 + SPSS卡方检验结果的阅读
  14. 大数据应用能力层次模型
  15. aws 亚马逊_Amazon AWS Rekognition教程
  16. aseprite 中心对称绘制脚本
  17. c语言怎么return ok,C语言中的 return与exit
  18. 无法打开文件“d3dx9.lib_三个小技巧,教会你解决无法打开手机文件问题
  19. 大话C语言——优化结构控制(一)
  20. linux增加swap空间的方法

热门文章

  1. NAS-Bert——确保One-shot与Task-agnostic
  2. 分布式系统论文精读3:容错虚拟机
  3. 【雅思阅读】王希伟阅读P4(matching2段落信息配对题【困难】)
  4. 安卓开发中非常炫的效果集合
  5. 电脑的危险端口?135,137,139,445,3389
  6. 亚马逊测评现在还能做吗?需要注意哪些?
  7. ftp上传 防火墙的设置
  8. iOS录音转码:amr转wav,wav转amr
  9. android编辑框最大字数,(转)Android中EditText的输入字数限制
  10. 大数据与个人征信市场发展