MySQL 之 GROUP BY 讲解:常见用法与案例剖析
-- 假设我们有一个名为sales的表,包含以下列:id, product_id, year, total_sales
-- 1. 按产品分组并计算每个产品的总销售额
SELECT product_id, SUM(total_sales) as total_product_sales
FROM sales
GROUP BY product_id;
-- 2. 按年份分组并计算每个年份的销售总额
SELECT year, SUM(total_sales) as total_yearly_sales
FROM sales
GROUP BY year;
-- 3. 按产品和年份分组,并计算每个产品每年的销售总额
SELECT product_id, year, SUM(total_sales) as total_sales_by_year
FROM sales
GROUP BY product_id, year;
-- 4. 使用HAVING子句过滤分组结果,只显示销售总额超过1000的组
SELECT product_id, SUM(total_sales) as total_sales
FROM sales
GROUP BY product_id
HAVING SUM(total_sales) > 1000;
-- 5. 按产品分组,并计算每个组的销售记录数
SELECT product_id, COUNT(*) as sale_count
FROM sales
GROUP BY product_id;
这些例子展示了如何使用GROUP BY子句对数据进行分组,并通过聚合函数进行统计计算。第四个例子中使用了HAVING子句来过滤结果集,只显示满足特定条件的分组。这些操作在数据分析和报告中经常用到,对于数据库开发者来说是一个重要的技能点。
评论已关闭