您可以使用基本的SQL查询从数据库中检索数据,但这通常无法提供足够的智能来满足业务需求。 SQL还为您提供了基于行级属性对查询结果进行分组的功能,以便使用GROUP BY子句应用聚合函数。例如,考虑一个包含以下属性的订单数据表:
- 订单ID - 唯一标识每个订单的数值。该字段是数据库的主键。
- 售货员 - 提供销售产品的销售人员姓名的文本值。该字段是包含人员信息的另一个表的外键。
- 顾客ID - 与客户帐号对应的数值。此字段也是外键,引用包含客户帐户信息的表。
- 收入 - 对应于销售金额的数值。
当需要对销售人员进行绩效评估时,订单表包含可用于该审核的有价值信息。例如,在评估Jim时,您可以编写一个简单的查询来检索Jim的所有销售记录:
选择 *
来自订单
销售人员喜欢'吉姆'
这将检索数据库中与Jim销售相对应的所有记录: OrderID销售人员CustomerID收入
12482吉姆182 40000
12488吉姆219 25000
12519 Jim 137 85000
12602吉姆182 10000
12741 Jim 155 90000
您可以查看此信息并执行一些手动计算以获得性能统计信息,但这将是一项繁琐的任务,您必须为公司中的每个销售人员重复这些任务。相反,您可以使用单个GROUP BY查询替换此工作,该查询计算公司中每个销售人员的统计信息。您只需编写查询并指定数据库应根据Salesperson字段对结果进行分组。然后,您可以使用任何SQL聚合函数来对结果执行计算。 这是一个例子。如果您执行了以下SQL语句: 选择销售员,SUM(收入)AS'总计',MIN(收入)AS'最小',MAX(收入)AS'最大',AVG(收入)AS'平均',COUNT(收入)AS'数字'
来自订单
按销售员分组
您将获得以下结果: 销售员总数最小的最大平均数
吉姆250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
如您所见,这个强大的功能允许您从SQL查询中生成小报告,为执行性能评估的经理提供有价值的商业智能。 GROUP BY子句经常在数据库中用于此目的,并且是DBA诀窍中的一个有价值的工具。




