SQL中常用的聚合函数有min/max/count/avg/sum,通常和group by连用。在涉及到条件筛选时,where子句中不能有聚合函数,要想使用条件应该使用having。
这与语句的执行顺序有关。
WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。因此执行where时不存在对应的聚合函数的值,因此where子句中不能有聚合函数。
SQL中常用的聚合函数有min/max/count/avg/sum,通常和group by连用。在涉及到条件筛选时,where子句中不能有聚合函数,要想使用条件应该使用having。
这与语句的执行顺序有关。
WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。因此执行where时不存在对应的聚合函数的值,因此where子句中不能有聚合函数。