📅  最后修改于: 2023-12-03 15:20:16.188000             🧑  作者: Mango
在 SQL 中通过分组可以将表格数据按照特定的列进行分组,并对每个分组进行聚合计算,例如求和、平均值、最大值、最小值等。
使用 GROUP BY
关键字可以对表格数据进行分组,分组的列称为分组列,SELECT 语句中聚合计算的列称为聚合列。分组语法格式如下:
SELECT column1, column2, aggregate_function(column3)
FROM table
WHERE condition
GROUP BY column1, column2
其中,
column1
, column2
: 分组列,可以是一个或多个列;aggregate_function(column3)
: 聚合列,对 column3
进行聚合计算的函数,如 SUM()
、AVG()
、MAX()
、MIN()
、COUNT()
等;table
: 表格名称;condition
: 可选的筛选条件,用于过滤部分数据。注意,分组列必须出现在 SELECT 语句中或者在聚合函数中,否则会导致语法错误。而聚合列不能出现在 GROUP BY 语句中,否则会导致语法错误。
假设我们有以下订单数据:
| 订单号 | 客户 | 产品 | 价格 | 数量 | | ------ | ----- | ---- | ---- | ---- | | 1 | Alice | 苹果 | 2.0 | 3 | | 2 | Bob | 梨子 | 1.5 | 4 | | 3 | Alice | 葡萄 | 3.5 | 2 | | 4 | Bob | 香蕉 | 2.0 | 5 |
现在我们要按照客户进行分组,求每个客户的订单总额和订单数量,SQL 语句如下:
SELECT 客户, SUM(价格 * 数量) AS 订单总额, COUNT(*) AS 订单数量
FROM 订单
GROUP BY 客户
执行结果如下:
| 客户 | 订单总额 | 订单数量 | | ----- | -------- | -------- | | Alice | 11.0 | 2 | | Bob | 15.5 | 2 |
我们可以看到,该查询结果展示了每个客户的订单总额和订单数量,合理使用分组可以快速得到我们需要的结果。
通过分组可以对表格数据按照特定的列进行分组,并对每个分组进行聚合计算,使用 GROUP BY
关键字可以对表格数据进行分组,分组列称为分组列,SELECT 语句中聚合计算的列称为聚合列。在实际应用中,分组是一个非常常见的操作,合理使用分组可以快速得到我们需要的结果。