在 SELECT 语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在 GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句 分组的任何符合 HAVING 子句的记录。
SELECT 字段表
FROM 表
WHERE选择准则
GROUP BY 分组字段表
[HAVING分组准则]
包含 HAVING 子句的 SELECT 语句具有以下几个部分:
部分 | 说明 |
---|---|
fieldlist | 要和任何字段名别名, SQL 合计函数s, 选择断定 (ALL, DISTINCT, DISTINCTROW, 或 TOP)或其他SELECT 语句选择一起检索的字段名称。 |
table | 从其中获取记录的表的名称。欲知更多信息请看 FROM 子句. |
selectcriteria | 选择准则。如果此 语句 包含一个 WHERE 子句, Microsoft Jet数据库引擎 会在记录上应用WHERE条件,然后把值分组。 |
groupfieldlist | 用来对记录分组的字段名,最多有 10 个字段。在 groupfieldlist 中字段名的顺序将决定组层次,由最高至最低的层次来分组。 |
groupcriteria | 一个表达式,用以决定应显示的已分组记录。 |
HAVING 是可选的。
HAVING 与 WHERE 类似,可用来决定选择哪个记录。在使用 GROUP BY对这些记录分组后,HAVING 会决定应显示的记录:
SELECT CategoryID,
Sum(UnitsInStock)
FROM Products
GROUP BY CategoryID
HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
一个 HAVING 子句最多可包含 40 个表达式,并由诸如 And 及 Or 之类的逻辑操作符来链接这些表达式。