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

sql中的having与where对比

sql中的having与where对比

  • 1、语法差异
  • 2、影响结果范围
  • 3、索引使用
  • 4、聚合函数
  • 5、总结


💖The Begin💖点点关注,收藏不迷路💖

在SQL中,havingwhere都是用来过滤数据的,但它们之间存在一些关键的不同点。

1、语法差异

  • where:在数据分组前过滤记录,只能使用表中的列名作为条件。

    select column from table where column_condition;
    
  • having:通常与group by一起使用,在数据分组后过滤聚合结果,可以使用聚合函数的结果作为条件。

    select column, aggregate(column) from table
    group by column
    having aggregate_condition;
    

2、影响结果范围

  • where:决定了从表中读取哪些行。
  • having:决定了哪些分组的结果会返回给客户端。

3、索引使用

  • where:可以直接利用索引来加速查询。
  • having:不直接使用索引,但group by可以利用索引,从而间接影响having的效率。

4、聚合函数

  • where:不能使用聚合函数进行过滤。
  • having:专门用于基于聚合函数的结果进行过滤。

5、总结

  • where:分组前过滤,基于列名,可用索引。
  • having:分组后过滤,基于聚合结果,不直接用索引但受group by影响。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

http://www.mrgr.cn/news/35640.html

相关文章:

  • P8680 [蓝桥杯 2019 省 B] 特别数的和
  • 【Windows】CMD命令学习——系统命令
  • 解决C盘空间不足的三种方案
  • 2024中国智能算力行业白皮书:产业图谱、市场规模等
  • C++线程
  • 【前端】Typescript从入门到进阶
  • 洛谷P1205 [USACO1.2] 方块转换
  • Java服务端服务发现:Nacos与Eureka的高级特性
  • Oracle(145)如何进行数据库的日常维护?
  • 【Go语言】Go语言结构体全面解析
  • 2048 游戏AI实现,轻松达到8192
  • 网络安全科普系统小程序的设计
  • python-list-append-method
  • 心觉:如何重塑高效学习的潜意识(1)两种方法的优缺点
  • C#:动态为Object对象添加新属性的方法
  • 【Linux 从基础到进阶】Hadoop 大数据平台搭建与优化
  • DevOps学习路线图
  • **CentOS7安装redis**
  • 物理学基础精解【16】
  • 【day20240925】常见数据集科普
  • 【Linux-基础IO】文件描述符重定向原理缓冲区
  • [大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理
  • 软考高级:需求工程- 4+1 视图 AI 解读
  • 【C++】STL详解之string类
  • 【Python】探索 PyTorch 在机器学习中的应用
  • 智慧照明,安全度夏:揭秘如何前置防御暴雨中的路灯杆漏电隐患