上一篇我们学习了如何利用 SQL 通用表表达式(CTE)简化复杂的查询语句,实现数据的遍历和递归处理。
我们在第 13 篇学习了基础的数据分组汇总操作,例如按照部门和职位统计员工的数量和平均月薪。现在,让我们讨论一些更高级的分组统计分析功能,也就是 GROUP BY 子句的扩展选项。
销售示例数据
本篇我们将会使用一个新的销售数据集(sales_data),它包含了 2019 年 1 月 1 日到 2019 年 6 月 30 日三种产品在三个渠道的销售情况。以下是该表中的部分数据:
我们将创建销售表和数据初始化的脚本放在了 GitHub 上,点击链接进行下载。
现在就让我们来看看 GROUP BY 支持哪些高级分组选项。
层次化的小计和总计
首先,我们按照产品和渠道统计一下销售额度:
SELECT product AS "产品",
channel AS "渠道",
SUM(amount) AS "销售金额"
FROM sales_data
GROUP BY product, channel;