1、首先说相同点:where和having后面都会跟一个条件语句,起到条件选择的作用,类似编程中我们一般所用的 if 语句。
2、执行顺序上,where先于having执行。而且having往往和group by连用,where则不能和group by连用。三者的执行顺序为where>group by>having。
3、最重要的区别:having可以和count、sum、avg、max、min等聚合函数一起使用,而where则不能,否则会报错。
作者:勃朋克
链接:https://www.zhihu.com/question/63039317/answer/1843525054
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。