精华内容
下载资源
问答
  • where和having的区别

    2014-01-13 22:33:57
    where和having的区别.
  • WHERE和HAVING的区别

    2019-12-17 18:44:20
    WHERE和HAVING的区别在于: where 子句的作用是对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。 having 子句的作用是筛选...

    WHERE和HAVING的区别在于:

    • where
      子句的作用是对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
    • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having
      条件过滤出特定的组,也可以使用多个分组标准进行分组。
    展开全文
  • where having 的区别

    2020-03-03 12:05:35
    where having 的区别? 1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来 2. where 后不可以跟聚合函数,having可以进行聚合函数的判断...

    where 和 having 的区别?
    1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
    2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

    		-- 按照性别分组。分别查询男、女同学的平均分
    
    		SELECT sex , AVG(math) FROM student GROUP BY sex;
    		
    		-- 按照性别分组。分别查询男、女同学的平均分,人数
    		
    		SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;
    		
    		--  按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组
    		SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
    		
    		--  按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人
    		SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
    		
    		SELECT sex , AVG(math),COUNT(id) 人数 FROM student WHERE math > 70 GROUP BY sex HAVING 人数 > 2;
    
    展开全文
  • where和having 的区别

    2018-09-27 09:47:20
    where和having 的区别: where:数据表中存在的字段 having:查询结果集中存在的字段 两者使用不当出现的问题: Invalid use of group function即“集函数的无效用法” 错句示例: SELECT sname AS '优秀学生...
    • where和having 的区别:

    where:数据表中存在的字段

    having:查询结果集中存在的字段

    • 两者使用不当出现的问题:

    Invalid use of group function即“集函数的无效用法”

    错句示例:

    SELECT sname AS '优秀学生姓名',AVG(score) as '平均成绩' FROM `grade_info` WHERE AVG(score)>90 GROUP BY sno;
    

    正确写法:

    SELECT sname AS '优秀学生姓名',AVG(score) as '平均成绩' FROM `grade_info` GROUP BY sno HAVING AVG(score) > 90 ;
    

    说明:

    GROUP BY,顾名思义:根据…分组,在SQL中常根据指定字段分组(指定字段内容相同是为一组),然后针对组进行相关操作

    WHERE和HAVING的区别在于:

    1. where 子句的作用是对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
    2. having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

    示例错句的问题就在于:WHERE子句中使用集函数。

    另外需要注意的地方是,SQL语法:

    SELECT [DISTINCT|DISINCTROW|ALL] select_expression,... -- 查询结果
    [FROM table_references -- 指定查询的表
    [WHERE where_definition] -- where子句,查询数据的过滤条件
    [GROUP BY col_name,...] -- 对[匹配where子句的]查询结果进行分组
    [HAVING where_definition] -- 对分组后的结果进行条件限制
    [ORDER BY{unsigned_integer | col_name | formula} [ASC | DESC],...] -- 对查询结果进行排序
    [LIMIT [offset,] rows] -- 对查询的显示结果进行条数限制
    [PROCEDURE procedure_name] --查询存储过程返回的结果集数据
    ]
    

    查询语句书写顺序须遵循上述规则。

    展开全文
  • where having的区别

    2018-12-08 14:03:16
    where 和 having where、聚合函数、having 在from后面的执行顺序: where > 聚合函(sum,min,max,avg,count) >... 本质的区别就是where筛选的是... where和having都可以使用的场景: select ...

    where 和 having

    1. where、聚合函数、having 在from后面的执行顺序:

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

    1. 使用

      本质的区别就是where筛选的是数据库表里面本来就有的字段,而having筛选的字段是从前筛选的字段筛选的。

      where和having都可以使用的场景:

      select goods_price,goods_name from sw_goods where goods_price>100

      select goods_price,goods_name from sw_goods having goods_price>100

      原因:goods_price作为条件也出现在了查询字段中。

       

      只可以使用where,不可以使用having的情况:

      select goods_name,goods_number from sw_goods where goods_price>100

      select goods_name,goods_number from sw_goods having goods_price>100(X)

      原因:goods_price作为筛选条件没有出现在查询字段中,所以就会报错。

      having的原理是先select 然后从select出来的进行筛选。而where是先筛选在select。

       

      只可以使用having,不可以使用where的情况:

      select goods_category_id,avg(good_price) as ag from sw_goods group by goods_category having ag>1000

      select goods_category_id,avg(goods_price) as ag from sw_goods where ag>1000 group by goods_category(X)

      原因:这个表里没有这个ag这个字段。

      where子句中一般不使用聚合函数那种情况。

    展开全文
  • Where和Having的区别

    2019-09-10 21:16:37
    之前只知道having用在聚合函数之后,没有...where和having都可以使用场景 1)select addtime,name from dw_users where addtime> 1500000000 2)select addtime,name from dw_users having addtime> 150...
  • where 和having的区别

    2020-01-20 17:21:00
    "Where"是一个约束声明,使用Where来约束来之数据库数据,Where是在结果返回之前起作用,且Where中不能使用聚合函数。 "Having"是一个过滤声明,是在查询返回结果集以后对查询结果进行过滤操作,在Having中...
  • Where 和Having的区别

    2016-02-22 19:47:25
    1、作用对象不同:where子句作用于表(或视图)中得行,而having子句作用...2、执行顺序不同:若查询语句中同时有where子句和Having子句,执行时先去掉不满足where条件行,然后分组,分组后再去掉不满足having条件组;
  • where having 的区别

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,215
精华内容 486
关键字:

where和having的区别