您好,欢迎来到星星旅游。
搜索
您的当前位置:首页sql中的having与where对比

sql中的having与where对比

来源:星星旅游


💖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💖点点关注,收藏不迷路💖

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务