-- 示例:按产品类别分组,只保留总销售额大于1000的分组 SELECT category, SUM(sales_amount) AS total_sales FROM products GROUP BY category HAVING SUM(sales_amount) > 1000; 1. GROUP BY category :先把数据按 category (产品类别)分组。 2. SUM(sales_amount) :计算每个分组的总销售额。 3. HAVING SUM(sales_amount) > 1000 :在分组聚合完成后,只保留总销售额大于1000的分组。 4. 对比 WHERE : WHERE 是在分组前过滤行数据,不能直接用聚合函数(比如 SUM() ),而 HAVING 是在分组后过滤聚合结果,专门用于这类场景。