SQL中Having与Where的区别及注意

 更新时间:2016年11月20日 10:29:56   投稿:daisy  
这篇文章给大家详细的介绍了SQL中Having与Where的区别,以及这两者的注意事项,文中还分享了Having与Where的示例代码,相信对大家的理解和学习很有帮助,感兴趣的朋友们可以参考借鉴,有需要的朋友们可以一起学习学习。

区别介绍:

     where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。

     having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

注意:

     1、HAVING子句必须位于GROUP BY之后ORDER BY之前。

     2、WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。  

     3、HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

示例 :

select 类别, sum(数量) as 数量之和 from A group by 类别 having sum(数量) > 18

示例:Having和Where的联合使用方法

select 类别, SUM(数量)from A where 数量 > 8 group by 类别 having SUM(数量) > 10

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • 浅谈数据库缓存最终一致性的四种方案

    浅谈数据库缓存最终一致性的四种方案

    缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景,缓存一致性的保证,更是在面试中被反复问到。下面我们就一起来了解一下
    2021-04-04
  • 一条DELETE语句

    一条DELETE语句

    原来DELETE语句有 delete from *** from *** 的格式
    2009-02-02
  • 在windows系统下如何安装memcached的讲解

    在windows系统下如何安装memcached的讲解

    今天小编就为大家分享一篇关于在windows系统下如何安装memcached的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • SQL知识点之列转行Unpivot函数

    SQL知识点之列转行Unpivot函数

    这篇文章主要给大家介绍了关于SQL知识点之列转行Unpivot函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 将sqlite3中数据导入到mysql中的实战教程

    将sqlite3中数据导入到mysql中的实战教程

    最近因为工作的需求,需要将sqlite3中的数据导入到mysql中去,发现网上的一些教程都不够详细,索性自己写一篇,下面这篇文章主要给大家介绍了关于将sqlite3数据库中的数据导入到mysql数据库中的相关资料,需要的朋友可以参考下。
    2017-07-07
  • 50条SQL查询技巧、查询语句示例

    50条SQL查询技巧、查询语句示例

    这篇文章主要介绍了50条SQL查询技巧、查询语句示例,本文以学生表、课程表、成绩表、教师表为例,讲解不同需求下的SQL语句写法,需要的朋友可以参考下
    2015-06-06
  • 数据库sql查询性能优化详解

    数据库sql查询性能优化详解

    这篇文章主要介绍了数据库sql查询性能优化详解,查询优化的本质是让数据库优化器为SQL语句选择最佳的执行计划,对于大型的应用系统,大量的数据当然需要效率最快的执行语句,需要的朋友可以参考下
    2023-07-07
  • SQL中一些小巧但常用的关键字小结

    SQL中一些小巧但常用的关键字小结

    这篇文章主要给大家总结介绍了关于SQL中一些小巧但常用的关键字,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 如何在Navicat新建连接、新建数据库以及导入数据库

    如何在Navicat新建连接、新建数据库以及导入数据库

    Navicat是图形化操作MySQL的强大工具,但是当数据库的服务器没有开放3306端口给办公网络时,在办公网使用navicat连接数据库是连不上的,下面这篇文章主要给大家介绍了关于如何在Navicat新建连接、新建数据库以及导入数据库的相关资料,需要的朋友可以参考下
    2023-05-05
  • 数据库系统结构详解之三级模式结构

    数据库系统结构详解之三级模式结构

    这篇文章主要为大家介绍了数据库系统的结构,文中通过图文的方式详细的解析了数据库系统结构的三级模式结构,有需要的朋友可以借鉴参考下
    2021-09-09

最新评论