1、where 一般用在group by 语句的前面,先筛选后分组;而having 一般用在group by 语句的后面,先分组后筛选。
举例:
a) 显示每个地区的总人口数和总面积.
SELECT region, SUM(population), SUM(area) FROM table GROUP BY region
先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中
的不同字段(一或多条记录)作运算。
b)仅显示那些面积超过1000000的地区总人口数和总面积
SELECT region, SUM(population), SUM(area)
FROM table
GROUP BY region
HAVING SUM(area)>1000000
c)仅显示那些面积超过1000000的A,B,C地区总人口数和总面积
SELECT region, SUM(population), SUM(area)
FROM table
where region in ('A','B','C')
GROUP BY region
HAVING SUM(area)>1000000