IN 与 DISTINCT
----start
在开始本文之前,我们先看条SQL语句,如下:
SELECT <field_name> FROM <...> WHERE <field_name> IN ( SELECT DISTINCT <field_name> FROM <...> );
怎么样?看上去是不是很熟悉,可能你曾经写过 或者 看到别人写过这样的语句,或者压根就没注意。上述语句想表达的意思是:去掉结果集中的重复值,然而却画蛇添足了。写出这样语句的人没有很好的领会IN的意图。其实IN只关心集合中有没有值,而不关心有几个。所以此时的DISTINCT 完全没有必要。那么加上DISTINCT 会不会对性能产生影响呢?答案是不会。因为DB2 的优化器早知道有人会这么写,所以在查询之前已经帮你去掉了DISTINCT 。尽管如此,我们还是不要加DISTINCT 为好。
---感谢:特别感谢 jackyren007 发现了本文一个非常严重的错误。此错误在2009-11-19已经修正。
---更多参见:DB2 SQL 精萃
----声明:转载请注明出处。
----last updated on 2009.11.19
----written by ShangBo on 2009.9.28
----end
IN 与 DISTINCT相关推荐
- leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法
题目解析 代码如下 题目解析 这一题是一道会员的题目,题目介绍如下: Given a string, find the length of the longest substring T that c ...
- RxJava 过滤操作符 distinct 和 distinctUntilChanged
distinct 看下文档 distinct : 过滤掉重复的元素 distinctUntilChanged: 过滤掉连续重复的元素,不连续重复的是不过滤 看下代码 1 distinct Obse ...
- Mybatis学习记录-使用问题总结之一DISTINCT
问题1:手动修改的查询语句,放入到项目中后显示结果和实际查询结果不一致 由于实际情况中用的了分页功能,导致最终的语句在查询完成后,添加了分页项,即如下代码. ROW_NUMBER() OVER ( O ...
- [LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...
Given a string, find the length of the longest substring T that contains at most k distinct characte ...
- distinct吃亏记
distinct 是一个去掉重复数据的函数 1.此函数只能在 头部 2.此函数声明后.如果跟两个或两个以上的字段.则会导致.此函数去判断与两个字段都相同的. 例如ID为2 的字段有两个.但是这两个字的 ...
- SQL中distinct的用法
在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值.表A:示例1select distinct name f ...
- 自定义Linq的Distinct
代码 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using Sy ...
- MySQL数据库中as和distinct关键字
1. as关键字 使用SQL语句显示结果的时候,使用 as 给字段起一个别名,使在屏幕显示的字段名具备良好的可读性. 1.1 使用 as 给字段起别名 select id as 序号, name as ...
- pandas使用groupby函数和agg函数获取每个分组特定变量独特值的个数(number of distinct values in each group in dataframe)
pandas使用groupby函数和agg函数获取每个分组特定变量独特值的个数(number of distinct values in each group in dataframe) 目录
- R语言dplyr包对独特值(distinct)进行计数实战
R语言dplyr包对独特值(distinct)进行计数实战 目录 R语言dplyr包对独特值(distinct)进行计数实战
最新文章
- 支付宝当面付扫码支付支付后不回调_支付宝当面付门店码
- 手机HTML编辑浏览器,HTML编辑浏览器
- Linux系统管理技术手册——第6章 添加新用户
- urllib.request.urlopen(req).read().decode解析http报文报“‘utf-8‘ codec can‘t decode”错处理
- 怎么在电脑上看磁盘分配单元的大小_电脑磁盘到底该不该分区?怎么分区?
- java利用htmlparser得到网页html内容
- 日本研发圆滚滚的球形无人机,被LED屏团团包围
- HD Tune Pro: WDC WD1600AAJS-00B8D 160g inMyRitMachi
- 用打印服务器打印打印机显示脱机,菜鸟也专业 打印机脱机故障处理方法
- 奇迹1.03H服务端开服架设文件Data文件详解
- C语言 同构数的算法
- java中调用cmd命令被阻塞无法返回和继续执行
- 最简单易懂的ios p12证书 和描述文件的创建,IPA上传,最完整的ios上架苹果商店教程
- 如何区分电压串联负反馈电路和电流串联负反馈电路
- bboss kafka组件使用介绍
- c语言定义用户标识符32个,c语言用户标识符是什么
- mysql只比较月日的情况
- Google Colaboratory中有多个py文件时的使用技巧
- 大数据:2019年汽车4S店访客画像
- 音视频 — 图像基础
热门文章
- python培训班-Python培训机构_高品质Python线下开发培训班推荐-黑马程序员
- 本地win10安装的MySQL8.0.12用navicat12报错 2509 -Authentication plugin ' caching_sha2_password' cannot be :
- 如何搭建一个集群项目
- 当电脑出现的验证码老是提示输入错误怎么办?
- VS2017 -error LNK1104: 无法打开文件“msvcprtd.lib”
- 非线性规划----经济调度(Python实现)
- linux下 获取系统时间的相关函数
- 数据结构考试的一些选择题
- 【5】依赖注入DI(Dependency Injection)
- CAD控件 出三维控件!和手机CAD控件了,欢迎大家使用!