HAVING是否按行或按组运行?

时间:2018-11-22 13:45:16

标签: mysql sql database

SQL中的HAVING子句是否按行或按组运行?

也就是说,它会删除不符合指定约束的单个行吗?

还是只删除不符合指定限制的整个组?

1 个答案:

答案 0 :(得分:2)

HAVINGGROUP BY之后过滤结果。因此,它每组过滤一行。

HAVING可以具有不在SELECT中的聚合表达式。尽管它们不在结果集中,但它们隐式包含在聚合中。

MySQL扩展了HAVING子句。如果没有聚合,则它的行为类似于WHERE,但它允许使用列别名。

MySQL还扩展了GROUP BY以包括未聚合的列。您可以将它们视为聚合函数ANY(),该函数从组中的任何行返回该表达式的值。