答:不是。
“Where” 是一个约束声明,使用Where来约束来自数据库的数据,Where先对数据库中的字段限制再返回结果,且Where中不能使用聚合函数。
“Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作(也可以理解为限制),在Having中可以使用聚合函数。
用having就一定要和group by连用,
用group by不一有having (它只是一个筛选条件用的)
只要条件里面的字段, 不是表里面原先有的字段就需要用having. SQL在查询表的时候先把查询的字段放到了内存里,而where查询的时候是从表里面查的,其余需要用having。