在里面数据库,GROUP BY是一个子句,可用于在一条记录的特定字段中组合具有相同值的记录。如果包括SQLSELECT语句中的聚合函数,如AVG、COUNT或SUM,Access为每条记录创建一个摘要值。
本文中的说明适用于Microsoft 365、Access 2019、2016、2013和2010。
使用分组方式
您可以使用SQL视图中的SQL查询查找并使用GROUP BY函数。这是访问和控制数据的最简单、最直接的方法之一。
-
启动Access并打开数据库。
此示例使用北风样本数据库.
-
选择创建标签。
-
在“查询”组中,选择查询设计.
-
在添加表列表中,选择要使用的表。
-
选择看法在结果组中,选择SQL视图.
-
主体将切换到查询终端窗口。在这里,您可以输入您喜欢的任何查询。
-
要从SQL中获取基本分组,请输入如下内容:
从tablename中选择*列/类别,如“条目”;
替换要查找的表的实际名称、类别或列标题以及实际条目值。
分解查询
例如,考虑一个由以下属性组成的订单数据表:
- OrderID:唯一标识每个订单的数值。这个字段是主键对于数据库。
- 销售人员:提供销售产品的销售人员名称的文本值。这个领域是外键转到另一个包含人员信息的表。
- 客户编号:对应客户账号的数值。此字段也是外键,引用包含客户帐户信息的表。
- 收入:与销售金额相对应的数值。
当需要对销售人员进行性能检查时,Orders表包含可能用于检查的有价值的信息。例如,在评估Jim时,您可以编写一个简单的查询来检索Jim的所有销售记录:
从销售人员喜欢“Jim”的订单中选择*;
这将从数据库中检索与Jim销售对应的所有记录:
OrderID销售人员客户ID收入
12482吉姆182 40000
12488吉姆219 25000
12519吉姆137 85000
12602吉姆182 10000
12741吉姆155 90000
您可以查看这些信息并执行一些手动计算以开发性能统计数据,但这将是一项乏味的任务,您必须为公司的每个销售人员重复这项任务。相反,您可以将此工作替换为计算公司中每个销售人员统计信息的单个GROUP BY查询。编写查询并指定数据库应根据Salesperson字段对结果进行分组。然后可以使用任何SQL聚合函数对结果执行计算。
这是一个例子。如果执行以下SQL语句:
SELECT销售人员,SUM(Revenue) AS ' Total ', MIN(Revenue) AS ' minimum ', MAX(Revenue) AS ' Largest ', AVG(Revenue) AS ' Average ', COUNT(Revenue) AS ' Number ' FROM Orders GROUP BY sales;
您将得到以下结果:
销售人员总数最小最大平均数
吉姆250000 10000 90000 50000 5
玛丽342000 24000 102000 57000
Bob 118000 4000 36000 39333 3
如您所见,这个强大的功能允许您从SQL查询中生成简短的报告,为执行性能评估的经理提供有价值的业务智能。在数据库中,经常使用GROUP BY子句来实现这一目的,它是DBA工具包中的一个有价值的工具。