4.3 — 多级分组
你将学到什么
- 如何在 SQL 中按多列分组
- 与 Excel 数据透视表嵌套行标签的对比
多列分组
以下是示例中使用的销售数据:
Product | Amount | SaleDate |
---|---|---|
Apples | 50 | 2024-05-01 |
Apples | 60 | 2024-05-01 |
Apples | 30 | 2024-05-02 |
Apples | 20 | 2024-05-02 |
Oranges | 40 | 2024-05-01 |
Oranges | 40 | 2024-05-01 |
Oranges | 25 | 2024-05-03 |
Oranges | 15 | 2024-05-03 |
在 Excel 的数据透视表中,你可以添加多个行标签。在 SQL 中,只需在 GROUP BY
里列出多个列。
示例:按产品和日期统计销售总额
sql
SELECT Product, Date, SUM(Amount) AS Total_Sales, AVG(Amount) AS AVG_Sales
FROM sales
GROUP BY Product, Date
ORDER BY Product, Date;
- 每个产品和日期的组合各占一行。
关键点
- 在
GROUP BY
里列出多个列,实现更细致的汇总。 GROUP BY
的列顺序影响分组方式。
下一步
接下来你将学习如何用 HAVING 子句筛选分组结果。