理解 SQL 中的 GROUP BY 与 PARTITION BY
💡
原文英文,约900词,阅读约需3分钟。
📝
内容提要
GROUP BY和PARTITION BY用于组织和处理数据,但用途和上下文不同。GROUP BY用于按列分组并应用聚合函数,减少行数。PARTITION BY用于分区结果集,不合并行,可应用聚合函数。GROUP BY总结数据,PARTITION BY用于排名、累计计算等。了解何时使用每个关键是高效查询的关键。
🎯
关键要点
- GROUP BY和PARTITION BY用于组织和处理数据,但用途和上下文不同。
- GROUP BY用于按列分组并应用聚合函数,减少行数。
- GROUP BY的输出是每个组一行,常用的聚合函数包括COUNT()、SUM()、MIN()、MAX()和AVG()。
- PARTITION BY用于分区结果集,不合并行,允许在每个分区内应用聚合函数。
- PARTITION BY的输出保留每行的独立性,计算如累计总和、排名等。
- GROUP BY用于汇总数据,适合计算每个类别的总销售额等。
- PARTITION BY适合排名数据和运行总和,保留所有行可见性。
- GROUP BY通常减少行数,可能更快,而PARTITION BY保留所有行,计算可能更重。
- 使用GROUP BY时,聚合发生在过滤之前,而PARTITION BY可以与ORDER BY结合使用进行复杂排名。
- 理解何时使用GROUP BY和PARTITION BY是高效查询的关键。
➡️