Applies ToMicrosoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

Access 中的 GROUP BY 子句将指定的字段列表中具有相同值的记录组合成一个记录。 如果在 SELECT 语句中包括 SQL 聚合函数(例如 Sum Count),则会为每个记录创建汇总值。

语法

SELECT fieldlistFROM tableWHERE criteria[GROUP BY groupfieldlist]

包含 GROUP BY 子句的 SELECT 语句由以下部分组成:

部分

说明

fieldlist

要与任何字段名别名、SQL 聚合函数、选择谓词(ALL、DISTINCT、DISTINCTROW 或 TOP)或其他 SELECT 语句选项一起进行检索的字段的名称。

table

从中检索记录的表的名称。

criteria

选择条件。 如果语句包含 WHERE 子句,则在将 WHERE 条件应用于记录之后,Microsoft Access 数据库引擎对值进行分组。

groupfieldlist

用来对记录进行分组的最多 10 个字段的名称。 groupfieldlist 中字段名称的顺序确定了从最高到最低的分组级别。

说明

GROUP BY 是可选的。

如果 SELECT 语句中没有 SQL 聚合函数,则省略汇总值。

GROUP BY 字段中的 Null 值将被分组,而不会省略。 但是,在任何 SQL 聚合函数中都不会计算 Null 值。

使用 WHERE 子句可以排除不想分组的行,使用 HAVING 子句则可以在分组记录之后筛选这些记录。

除非 GROUP BY 字段列表中的字段包含 Memo 或 OLE Object 数据,否则,假如 SELECT 语句包含至少一个 SQL 聚合函数,则 GROUP BY 字段列表中的字段就可以引用 FROM 子句所列出的任何表中的任何字段,无论 SELECT 语句是否包含该字段。 Microsoft Access 数据库引擎无法对“Memo”或“OLE Object”字段进行分组。

SELECT 字段列表中的所有字段都必须包括在 GROUP BY 子句中,或作为 SQL 聚合函数的参数包括在内。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。