where、having之间的区别和用法

原创 2017年08月03日 19:51:27

聚合函数是比较where、having 的关键。
开门见山。where、聚合函数、having 在from后面的执行顺序:

where>聚合函数(sum,min,max,avg,count)>having

列出group by来比较二者。()因where和having 在使用group by时问的最多)
若须引入聚合函数来对group by 结果进行过滤 则只能用having。(此处不多说,自己想 是先执行聚合函数还是先过滤 然后比对我上面列出的执行顺序 一看便知)

样例:select sum(score) from student  where sex='man' group by name having sum(score)>210

注意事项 :
1、where 后不能跟聚合函数,因为where执行顺序大于聚合函数。
2、where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
3、having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

版权声明:本文为博主原创,转载请注明出处(http://blog.csdn.net/jdjh1024).

SQL中Where与Having的区别

 “Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。“Having”是一个过滤声明,是在查询返回结果集以后对查询...
  • oathevil
  • oathevil
  • 2010年04月23日 18:20
  • 17056

正确理解MySQL中的where和having的区别

以前在学校里学习过SQLserver数据库,发现学习的都是皮毛,今天以正确的姿态谈一下MySQL中where和having的区别。 误区:不要错误的认为having和group ...
  • yexudengzhidao
  • yexudengzhidao
  • 2017年02月08日 11:09
  • 4945

ON、WHERE、HAVING的区别

ON 、WHERE、HAVING都能通过限制条件筛选数据,但他们的使用及其不同。下面我们来分析三者之间的区别。 1.       ON 和WHERE         所有的查询都回产生一个中间临时报表...
  • bruceyang2009lzu
  • bruceyang2009lzu
  • 2014年08月26日 13:41
  • 4740

GROUP BY,WHERE,HAVING之间的区别和用法

 having子句与where有相似之处但也有区别,都是设定条件的语句。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行...
  • fage87295970
  • fage87295970
  • 2009年11月01日 23:40
  • 62853

sql中where 和having 的同时使用

以实例说明select jCode,jName,sum(jQty) from jProduct where jCode like %0123% group by jCode,jName having ...
  • scutLiu
  • scutLiu
  • 2010年03月24日 17:46
  • 2864

HAVING和WHERE的区别

having子句与where都是设定条件的语句,有相似之处但也有区别。聚合函数,这是必需先讲的一种特殊的函数: 例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一...
  • wangnantju
  • wangnantju
  • 2010年09月07日 14:13
  • 3979

【数据库】——having和where的区别

各种数据库空白点,各种补,各种基础走起 前提     本文主要讲解having和where在数据库使用中有什么不同之处,学习本文的前提,需要先搞懂数据库语句的执行顺序。 使用场景不同...
  • jiadajing267
  • jiadajing267
  • 2017年02月05日 18:03
  • 623

浅谈group by和order by的用法和区别

前一段时间的面试,问道这个问题,不太清楚了,感觉有必要来总结一下。话不多说,直接开始吧! 一、order by的用法 使用order by,一般是用来,依照查询结果的某一列(或多列)属性,进行排序(...
  • jiangxindu1
  • jiangxindu1
  • 2015年09月01日 02:26
  • 23578

sql语句中where与having的区别

Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。 Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的...
  • qmhball
  • qmhball
  • 2012年09月04日 13:18
  • 9765

SQL HAVING用法详解

HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用...
  • wozeze1
  • wozeze1
  • 2010年11月24日 09:48
  • 123710
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:where、having之间的区别和用法
举报原因:
原因补充:

(最多只允许输入30个字)