在关系型数据库中,GROUP 子句用于将数据分组并根据每个组的摘要信息(例如总和或平均值)生成新的数据集。
语法
SELECT aggregate_function(column_name)
FROM table_name
GROUP BY column_name
参数
aggregate_function():应用于每个组的聚合函数,例如 SUM()、COUNT()、G() 等。
column_name:用于分组数据列的列名。
用途
GROUP 子句通常用于以下目的:
汇总数据:例如,计算每个产品类别的总销售额。
过滤数据:例如,显示每个客户购买的不同产品的数量。
关联数据:例如,将客户表与订单表分组,以查看每个客户的订单列表。
示例
假设有一个名为 "sales" 的表,其中包含以下数据:
| product_category | product_name | price | customer_id |
|---|---|---|---|
| Electronics | Phone | 500 | 10 |
| Electronics | Tablet | 300 | 15 |
| Furniture | Chair | 200 | 20 |
| Furniture | Table | 400 | 25 |
要计算每个产品类别的总销售额,可以使用以下查询:
sql
SELECT product_category, SUM(price) AS total_sales
FROM sales
GROUP BY product_category;
这个查询将生成以下结果:
| product_category | total_sales |
|---|---|
| Electronics | 800 |
| Furniture | 600 |
其他注意事项
GROUP BY 子句将返回与分组列相同数量的行。
如果不指定聚合函数,则 GROUP BY 将返回每个组的第一个行的值。
可以使用 HING 子句对分组后的数据进行进一步过滤。
GROUP BY 子句可以与其他聚合函数(如 MIN()、MAX())结合使用。
![](https://img0.baidu.com/it/u=3892826424,4158316505&fm=253.jpg)