← 返回《SQL 数据分析入门课:看懂业务数据》
📑 查看全课大纲(第 4 / 5 节)

GROUP BY 分组与聚合

GROUP BY 分组与聚合

在小象咖啡馆的日常经营中,比起看一笔笔零散的流水明细,店长更关心宏观的汇总指标。比如:今天总共卖出了多少杯咖啡?总销售额是多少?顾客单笔平均消费是多少?这就轮到聚合函数登场了:

  • COUNT():统计行数(订单总笔数)。
  • SUM():求数值列的总和(总销售额)。
  • AVG():求数值列的平均值(平均客单价)。

例如,计算小象咖啡馆所有订单的平均消费金额:

SELECT AVG(amount) AS avg_spend FROM orders;

📝 选择题

💡 侦探排雷:统计朝阳分店订单数 小象咖啡馆“朝阳分店”店长想知道今天店里总共接待了多少笔订单。以下哪条 SQL 查询语句能正确统计出该店的订单总数(数据表为 orders,分店字段为 branch_name)?

  • A. SELECT SUM(order_id) FROM orders WHERE branch_name = ‘Chaoyang’;
  • B. SELECT COUNT(*) FROM orders WHERE branch_name = ‘Chaoyang’;
  • C. SELECT COUNT(all) FROM orders WHERE branch_name = ‘Chaoyang’;
  • D. SELECT COUNT(amount) FROM orders WHERE branch_name = ‘Chaoyang’ GROUP BY order_id;

答案:B(SELECT COUNT(*) FROM orders WHERE branch_name = ‘Chaoyang’;)


如果我们想按某些类别进行分别汇总,就需要配合使用 GROUP BY 子句。

例如,店长想知道小象咖啡馆每个分店 branch_name 的平均销售额,SQL 语句可以这样写:

SELECT branch_name, AVG(amount) AS avg_amount 
FROM orders 
GROUP BY branch_name;

这样 SQL 就会先将所有订单按照分店名称进行分组,然后在每个组内单独计算 AVG(amount) 并输出。


✏️ 填空题

💡 侦探实战:按饮品品类统计营业额 为了帮小象咖啡馆分析哪类产品最赚钱,我们需要统计订单明细表 order_details 中每个饮品分类 category 的总营业额 SUM(amount)。请补全下方 SQL 代码:

# 按品类分组统计总营业额
SELECT category, SUM(amount) FROM order_details 
___ BY category;

答案:GROUP

🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问