文档首页 > > SQL语法参考> SELECT相关语句> 分组> GROUP BY中使用HAVING过滤

GROUP BY中使用HAVING过滤

分享
更新时间: 2019/10/24 GMT+08:00

功能描述

利用HAVING子句在表分组后实现过滤。

语法格式

1
2
3
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乘积的最大值。

1
2
3
4
SELECT num, max(price*amount) FROM transactions
  WHERE time > '2016-06-01'
  GROUP BY num
  HAVING max(price*amount)>5000;
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区