having-clause

HAVING子句指定一个结果表,该结果表由满足搜索条件的中间结果表中的那些组组成。 中间结果表是上一句的结果。 如果此子句不是 GROUP BY,则中间结果表被视为一个单独的组,没有子选择子句中前一个子句的分组列。

有-从句的语法

阅读语法图跳过可视化语法图HAVING搜索条件

有条件的描述

搜索条件中的每个列名必须是以下列名之一:

  • 明确识别中间结果表的分组列
  • 在聚合函数中指定 1
  • 为相关引用。 列名是指外部子选择中标识的表、视图、 公共表表达式嵌套表表达式的列的关联引用

应用搜索条件的中间结果表组为搜索条件中的每个函数提供参数,但参数为相关引用的函数除外。

如果搜索条件包含子查询,则每次将搜索条件应用于中间结果表的一组数据时,都会执行子查询,并将结果用于应用搜索条件。 实际上,仅当每个组包含相关引用时,才会对该组执行子查询。 关于区别的说明,请参见示例4示例5

对中间结果表的一组相关引用必须标识分组列或包含在聚合函数中。

当HAVING不带GROUP BY时,选择列表中的任何表达式或列名都必须出现在聚合函数中。

RID内置函数和ROW CHANGE表达式不能在HAVING子句中指定,除非它们在聚合函数中。

行访问控制不影响HAVING子句的运行。

1 参见内置功能和 Db2 提供的功能 ,了解使用聚合功能时适用的限制。