**- 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。**