在SQL中,GROUP BY子句用于将数据按照一个或多个列进行分组,而HAVING子句用于对分组后的数据进行过滤。以下是使用GROUP BY和HAVING子句进行数据分组和过滤的基本语法和示例:
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;
假设我们有一个名为orders的表,包含以下列:order_id, customer_id, order_date, total_amount。
SELECT customer_id, COUNT(order_id) as order_count, SUM(total_amount) as total_spent
FROM orders
GROUP BY customer_id
HAVING total_spent > 1000;
在这个示例中,我们按照customer_id对订单数据进行分组,并计算每个客户的订单数量(order_count)和总消费金额(total_spent)。然后,我们使用HAVING子句过滤出总消费金额大于1000的客户。