oracle distinct关键字过滤掉重复记录
为什么80%的码农都做不了架构师?>>>
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关键字过滤掉重复记录相关推荐
- mysql 重复数据 distinct_MySQL中distinct语句去查询重复记录及相关的性能讨论
在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...
- mysql去重复查询 性能_MySQL中distinct语句去查询重复记录及相关的性能讨论_MySQL...
在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...
- mysql去重复查询 性能_MySQL中distinct语句去查询重复记录及相关的性能讨论
在 MySQL 查询中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值,就是去重啦.用法也很简单: SELE ...
- mysql distinct 去掉查询结果重复记录 可用于多张表连接查询
在项目中遇到了这个问题,研究了一下,觉得还是很有必要做一下笔记: DISTINCT 关键字解释 使用 DISTINCT 关键字可以去掉查询中某个字段的重复记录,具体字段自己决定. 例子如下: 假设te ...
- Oracle如何删除表中重复记录
1 引言 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢? 平时工作中可能会遇到当试图对库表中的 ...
- oracle重复数据取只一条,oracle 一个表多条重复记录只取一条的解决方法
A 表: id name 1 张三 2 李四 B 表: id 为 A 表 主键 id name 1 王五 1 小李 1 王 ...
- distinct过滤掉重复记录并且显示所有字段_MySQL的所有姿势,我都帮你准备好了...
mysql登录 远程登录方式 本地登陆方式 mysql:mysql -h 主机名 -P 端口号 -u 用户名 -p密码 mysql:mysql -uroot -p密码 数据库操作命令 创建数据库.删除 ...
- oracle 无效连接,Oracle SQL多重连接与重复记录或“无效标识符”
我对SQL很新,之前做过一些连接但没有像这样复杂. 基本上,我要做的是将许多表连接在一起以显示报告的总体数据.主表g,是我希望看到的详细程度. g与附加到其上的所有表格具有一对多关系. GROUP B ...
- 【MySQL】 DISTINCT关键字详解:用法、实际应用和与GROUP BY的区别
目录 一.DISTINCT关键字 1.定义 2.使用场景 二.用法 1.基本用法 2.DISTINCT在多列上的使用 3.DISTINCT和GROUP BY的区别 三.实际应用场景 1.查询唯一的记录 ...
最新文章
- MAC 开机密码破解
- grunt live reload 配置记录
- numpy.random.rand、numpy.random.randn
- SIG Cloud Provider Alibaba 网研会第 2 期顺利召开 | 云原生生态周报 Vol. 46
- 调用支付jsapi缺少参数appid_服务商模式下的小程序微信支付
- 接口测试用例模板_ITest:京东数科接口自动化测试实践
- 控制台启动jar包关闭控制台怎么关java程序_Jpom一款简而轻的低侵入式Java运维、监控软件...
- Linux学习之内核模块编程
- linux下iconv编码转换的用法
- 程序员的进阶课-架构师之路(16)-散列表(哈希表)
- C++笔记---函数声明(prototype)
- 超市管理系统java代码,超市管理系统完整+源代码
- python 正则findall右斜杠_Python正则表达式匹配反斜杠问题解析
- 使用ETE包让系统发育树(进化树)和多重序列比对(MSA)“同框”
- 景区电商平台网站建设方案
- C# 获取汉字的对应的全拼音和拼音首字母(含源码)
- 代码回滚,你真的理解吗?
- 马来西亚:央行与证监会联合实施数字货币与ICO监管
- 入门级Python代码实时获取股市数据
- 什么是Qt Quick
热门文章
- 陶哲轩实分析 习题 13.5.6
- ListActivity的onListItemClick不响应的解决办法
- Testing Windows Live Writer 2
- 标准纯C++实现简单的词法分析器(三)
- Git 2.20的重大更新:侧重可用性和性能
- 最长回文子串--马拉车(?)
- 从一道常见习题的自然延伸谈起
- “大型票务系统”和“实物电商系统”的数据库选型
- 正确重置MySQL密码
- 摘:C/C++中时间类time.h