为什么80%的码农都做不了架构师?>>>   

oracle distinct关键字过滤掉重复记录 

distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
下面先来看看例子:

  • table表
  • 字段1     字段2
  • 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

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。

------------------------------------------------------------------------------------------------------------

下面方法可行:

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

结果:

  • id name count(distinct name)
  • 1 a 1
  • 2 b 1
  • 3 c 1

最后一项是多余的,不用管就行了,目的达到。。。。。

group by 必须放在 order by 和 limit之前,不然会报错

转载于:https://my.oschina.net/huqiji/blog/799298

oracle distinct关键字过滤掉重复记录相关推荐

  1. mysql 重复数据 distinct_MySQL中distinct语句去查询重复记录及相关的性能讨论

    在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...

  2. mysql去重复查询 性能_MySQL中distinct语句去查询重复记录及相关的性能讨论_MySQL...

    在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...

  3. mysql去重复查询 性能_MySQL中distinct语句去查询重复记录及相关的性能讨论

    在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...

  4. mysql distinct 去掉查询结果重复记录 可用于多张表连接查询

    在项目中遇到了这个问题,研究了一下,觉得还是很有必要做一下笔记: DISTINCT 关键字解释 使用 DISTINCT 关键字可以去掉查询中某个字段的重复记录,具体字段自己决定. 例子如下: 假设te ...

  5. Oracle如何删除表中重复记录

    1  引言 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢? 平时工作中可能会遇到当试图对库表中的 ...

  6. oracle重复数据取只一条,oracle 一个表多条重复记录只取一条的解决方法

    A  表: id     name 1      张三 2      李四 B    表:   id  为  A  表 主键 id    name 1     王五 1      小李 1     王 ...

  7. distinct过滤掉重复记录并且显示所有字段_MySQL的所有姿势,我都帮你准备好了...

    mysql登录 远程登录方式 本地登陆方式 mysql:mysql -h 主机名 -P 端口号 -u 用户名 -p密码 mysql:mysql -uroot -p密码 数据库操作命令 创建数据库.删除 ...

  8. oracle 无效连接,Oracle SQL多重连接与重复记录或“无效标识符”

    我对SQL很新,之前做过一些连接但没有像这样复杂. 基本上,我要做的是将许多表连接在一起以显示报告的总体数据.主表g,是我希望看到的详细程度. g与附加到其上的所有表格具有一对多关系. GROUP B ...

  9. 【MySQL】 DISTINCT关键字详解:用法、实际应用和与GROUP BY的区别

    目录 一.DISTINCT关键字 1.定义 2.使用场景 二.用法 1.基本用法 2.DISTINCT在多列上的使用 3.DISTINCT和GROUP BY的区别 三.实际应用场景 1.查询唯一的记录 ...

最新文章

  1. MAC 开机密码破解
  2. grunt live reload 配置记录
  3. numpy.random.rand、numpy.random.randn
  4. SIG Cloud Provider Alibaba 网研会第 2 期顺利召开 | 云原生生态周报 Vol. 46
  5. 调用支付jsapi缺少参数appid_服务商模式下的小程序微信支付
  6. 接口测试用例模板_ITest:京东数科接口自动化测试实践
  7. 控制台启动jar包关闭控制台怎么关java程序_Jpom一款简而轻的低侵入式Java运维、监控软件...
  8. Linux学习之内核模块编程
  9. linux下iconv编码转换的用法
  10. 程序员的进阶课-架构师之路(16)-散列表(哈希表)
  11. C++笔记---函数声明(prototype)
  12. 超市管理系统java代码,超市管理系统完整+源代码
  13. python 正则findall右斜杠_Python正则表达式匹配反斜杠问题解析
  14. 使用ETE包让系统发育树(进化树)和多重序列比对(MSA)“同框”
  15. 景区电商平台网站建设方案
  16. C# 获取汉字的对应的全拼音和拼音首字母(含源码)
  17. 代码回滚,你真的理解吗?
  18. 马来西亚:央行与证监会联合实施数字货币与ICO监管
  19. 入门级Python代码实时获取股市数据
  20. 什么是Qt Quick

热门文章

  1. 陶哲轩实分析 习题 13.5.6
  2. ListActivity的onListItemClick不响应的解决办法
  3. Testing Windows Live Writer 2
  4. 标准纯C++实现简单的词法分析器(三)
  5. Git 2.20的重大更新:侧重可用性和性能
  6. 最长回文子串--马拉车(?)
  7. 从一道常见习题的自然延伸谈起
  8. “大型票务系统”和“实物电商系统”的数据库选型
  9. 正确重置MySQL密码
  10. 摘:C/C++中时间类time.h