SQL中Having与Where的区别

含义

  • where
    在分组以前就进行选择操做sql

  • having
    having在分组操做以后才进行选择操做,因此having能够选择聚合函数函数

eg:

// 下面这句是能够的
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
相关文章
相关标签/搜索