在MySQL中,GROUP BY语句用于将结果集按照一个或多个列进行分组。它结合使用聚合函数(如COUNT、SUM、AVG等)对每个组进行计算,从而生成汇总数据。
语法: SELECT 列名1, 列名2, … FROM 表名 WHERE 条件 GROUP BY 列名1, 列名2, … HAVING 条件;
在GROUP BY子句中,可以指定一个或多个列名,用逗号分隔。结果集将按照这些列进行分组。如果指定多个列名,在分组时会按照从左到右的顺序进行分组。
在GROUP BY子句后面可以使用HAVING子句进行条件过滤。HAVING子句类似于WHERE子句,但它用于过滤分组后的结果,而不是过滤行。只有满足HAVING条件的分组才会出现在结果集中。
使用GROUP BY可以实现以下功能:
注意事项:
示例: 假设有一个名为orders的表,包含以下列:order_id, customer_id, order_date, total_amount。要计算每个顾客的订单总金额,可以使用以下查询: SELECT customer_id, SUM(total_amount) as total_order_amount FROM orders GROUP BY customer_id;
该查询按customer_id分组,并计算每个分组的总金额。结果集将包含每个顾客的customer_id和总金额total_order_amount。