
# GROUP BY中使用HAVING
#### 功能描述
利用HAVING子句在表分组后实现过滤。
#### 语法格式
```
SELECT attr_expr_list FROM table_reference
  GROUP BY groupby_expression[, groupby_expression… ]
  HAVING having_expression;
```
#### 关键字
groupby_expression：可以是单字段，多字段，也可以是聚合函数，字符串函数等。
#### 注意事项
- 所要分组的表必须是已经存在的表，否则会出错。
- 如果过滤条件受GROUP BY的查询结果影响，则不能用WHERE子句进行过滤，而要用HAVING子句进行过滤。HAVING与GROUP BY合用，先通过GROUP BY进行分组，再在HAVING子句中进行过滤，HAVING子句中可支持算术运算，聚合函数等。
 
#### 示例
先依据num对表transactions进行分组，再利用HAVING子句对查询结果进行过滤，price与amount乘积的最大值大于5000的记录将被筛选出来，返回对应的num及price与amount乘积的最大值。
```
SELECT num, max(price*amount) FROM transactions
  WHERE time > '2016-06-01'
  GROUP BY num
  HAVING max(price*amount)>5000;
```
