当前位置: 首页 > news >正文

Mysql中having语句与where语句的用法与区别

分析&回答

我们在写sql语句的时候,经常会使用where语句,很少会用到having,其实在mysql中having子句也是设定条件的语句与where有相似之处但也有区别。having子句在查询过程中慢于聚合语句(sum,min,max,avg,count)。而where子句在查询过程中则快于聚合语句(sum,min,max,avg,count)。  

简单说来:  

where子句: 
select sum(num) as rmb from order where id>10  
先查询出id大于10的记录才能进行聚合语句  having子句:  
select reportsto as manager, count(*) as reports from employees  group by reportsto having count(*) > 4  以test库为例.having条件表达示为聚合语句。肯定的说having子句查询过程慢于聚合语句。  
再换句说话说把上面的having换成where则会出错。统计分组数据时用到聚合语句。
复制代码

   对分组数据再次判断时要用having。如果不用这些关系就不存在使用having。直接使用where就行了。  

having就是来弥补where在分组数据判断时的不足。因为where要快于聚合语句。

喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!

http://www.lryc.cn/news/156546.html

相关文章:

  • 基于qt软件的网上聊天室软件
  • 本是同根生-双数据库集群keepalived virtual_route_id冲突导致连接故障
  • 『力扣每日一题06』字符串中的第一个唯一字符
  • selenium鼠标操作方法
  • 医者无疆 | AI赋能大医精诚,医疗制药的进阶与突破
  • 使用 Hue 玩转 Amazon EMR(SparkSQL, Phoenix) 和 Amazon Redshift
  • Unity中神秘的Transform和transform(小写)的关系
  • 【LeetCode-中等题】78. 子集
  • 学习设计模式之代理模式,但是宝可梦
  • 自学Python01-创建文件写入内容
  • Qt —UDP通信QUdpSocket 简介 +案例
  • 五大类注解和方法注解详解
  • 机器人中的数值优化(十)——线性共轭梯度法
  • 数据结构与算法之贪心动态规划
  • 【网络编程】网络基础概念
  • 连接虚拟机报错 Could not connect to ‘192.168.xxx.xxx‘ (port 22): Connection failed.
  • 数学建模--Topsis评价方法的Python实现
  • 超越时间与人力的软件开发智慧:《人月神话》
  • Java Stream 流对象(实用技巧)
  • 【用unity实现100个游戏之8】用Unity制作一个炸弹人游戏
  • 简易版人脸识别qt opencv
  • 如何系统地学习 JavaScript?
  • 对称二叉树(Leetcode 101)
  • 动手学深度学习(2)-3.5 图像分类数据集
  • C标准输入与标准输出——stdin,stdout
  • 如何将home目录空间扩充到根目录下
  • Ceph PG Peering数据修复
  • 服务器上使用screen和linux的基本操作
  • Kafka3.0.0版本——文件存储机制
  • Linux如何安装MySQL