MySQL :where 语句与Having 语句的区别

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

猜你喜欢

转载自blog.csdn.net/beauty0522/article/details/64922408