理解 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是高效查询的关键。
➡️

继续阅读