💖The Begin💖点点关注,收藏不迷路💖
|
在SQL中,having
和where
都是用来过滤数据的,但它们之间存在一些关键的不同点。
where
:在数据分组前过滤记录,只能使用表中的列名作为条件。
select column from table where column_condition;
having
:通常与group by
一起使用,在数据分组后过滤聚合结果,可以使用聚合函数的结果作为条件。
select column, aggregate(column) from table
group by column
having aggregate_condition;
where
:决定了从表中读取哪些行。having
:决定了哪些分组的结果会返回给客户端。where
:可以直接利用索引来加速查询。having
:不直接使用索引,但group by
可以利用索引,从而间接影响having
的效率。where
:不能使用聚合函数进行过滤。having
:专门用于基于聚合函数的结果进行过滤。where
:分组前过滤,基于列名,可用索引。having
:分组后过滤,基于聚合结果,不直接用索引但受group by
影响。
💖The End💖点点关注,收藏不迷路💖
|
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务