SQL中Having与Where的区别

 更新时间:2016年01月30日 15:12:45   投稿:hebedich  
何时使用having where,请遵照下面的说明:WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

含义

where

在分组之前就进行选择操作

having

having在分组操作之后才进行选择操作,所以having可以选择聚合函数
eg:

// 下面这句是可以的
SELECT COUNT(*) FROM A
WHERE A.a1>0
GROUP BY a2;
//但是下面就不行
SELECT COUNT(*) FROM A
WHERE A.a1>0 and count(*)>1
GROUP BY a2;
//必须要改为having
SELECT COUNT(*) FROM A
WHERE A.a1>0
GROUP BY a2
HAVING COUNT(*)>1

相关文章

  • 聊聊Navicat统计的行数竟然和表实际行数不一致的问题

    聊聊Navicat统计的行数竟然和表实际行数不一致的问题

    Navicat作为数据库管理工具,在业界广受欢迎,这篇文章主要介绍了Navicat统计的行数竟然和表实际行数不一致的问题,需要的朋友可以参考下
    2021-12-12
  • 分布式缓存Redis与Memcached的优缺点区别比较

    分布式缓存Redis与Memcached的优缺点区别比较

    Redis和Memcached都是基于内存key-value的数据存储系统。两者都可以通过缓存数据结果,HTML片段或其他可能产生成本很高的内容来帮助加快应用程序的速度。与memcached相比,Redis功能更强大,更受欢迎并且得到更好的支持。
    2022-12-12
  • MySQL与Oracle差异比较之二 基本语法

    MySQL与Oracle差异比较之二 基本语法

    这篇文章主要介绍了MySQL与Oracle差异比较之二 基本语法,需要的朋友可以参考下
    2017-04-04
  • SQL语句详细说明[部分]

    SQL语句详细说明[部分]

    比较不错的sql实例分析,比较详细,建议学习sql的朋友看看
    2008-09-09
  • 常见的SQL优化面试专题大全

    常见的SQL优化面试专题大全

    面试中如何被问到SQL优化,看这篇就对了,下面这篇文章主要给大家介绍了关于SQL优化面试的相关资料,文中将答案介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • Access转换成SQL Server需要注意事项整理

    Access转换成SQL Server需要注意事项整理

    很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项
    2008-04-04
  • 90%程序员面试会遇到的索引优化问题

    90%程序员面试会遇到的索引优化问题

    不管是用C/C++/Java等代码编写的程序,还是SQL编写的数据库脚本,都存在一个持续优化的过程。也就是说,代码优化对于程序员来说,是一个永恒的话题。下面这篇文章主要给大家总结介绍了90%程序员在面试的时候会遇到的索引优化问题,需要的朋友可以参考下。
    2017-11-11
  • 关于navicat事务自动提交问题

    关于navicat事务自动提交问题

    这篇文章主要介绍了关于navicat事务自动提交问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • sql语句创建外键关联的完整实例

    sql语句创建外键关联的完整实例

    这篇文章主要给大家介绍了关于sql语句创建外键关联的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • IndexedDB浏览器内建数据库并行更新问题详解

    IndexedDB浏览器内建数据库并行更新问题详解

    这篇文章主要为大家介绍了IndexedDB浏览器内建数据库并行更新问题详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论