where
在分组以前就进行选择操做sql
having
having在分组操做以后才进行选择操做,因此having能够选择聚合函数函数
// 下面这句是能够的 SELECT COUNT(*) FROM A WHERE A.a1>0 GROUP BY a2; //可是下面就不行 SELECT COUNT(*) FROM A WHERE A.a1>0 and count(*)>1 GROUP BY a2; //必需要改成having SELECT COUNT(*) FROM A WHERE A.a1>0 GROUP BY a2 HAVING COUNT(*)>1