首先 聚合函数(count,max,min,avg,sum)针对列进行运算,
where针对于行进行运算过滤,
sql语句执行顺序 from - where(分组前进行过滤) - group by -having(分组后进行过滤)-order by-having -limit -select;
所以可以得知
where进行过滤后得到结果集 然后才能通过聚合函数进行列得过滤,
综上有两点原因
1.如果where时 使用聚合函数的话 只是针对于from后的结果集,where还会再次分组过滤,所以是无用的
2.聚合函数针对于列,where针对于行