聚合函数与窗口函数

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

在SQL中,聚合函数SUM()结合GROUP BY可以计算每个部门的工资总和,并返回每个部门一行。窗口函数SUM()结合PARTITION BY也能计算每个部门的总工资,但保留所有行。选择方法取决于是否需要汇总数据或保留所有行。

🎯

关键要点

  • 在SQL中,聚合函数SUM()结合GROUP BY可以计算每个部门的工资总和。
  • 使用聚合函数时,结果集会减少为每个部门一行。
  • 窗口函数SUM()结合PARTITION BY可以计算每个部门的总工资,但保留所有行。
  • 选择使用聚合函数还是窗口函数取决于是否需要汇总数据或保留所有行。
  • 聚合函数使用GROUP BY来指定如何分组行。
  • 窗口函数使用OVER与PARTITION BY来定义计算在每个分区内的应用方式。

延伸问答

聚合函数和窗口函数有什么区别?

聚合函数会减少返回的行数,每个组一行,而窗口函数保留所有行。

如何使用聚合函数计算每个部门的工资总和?

可以使用SUM()函数结合GROUP BY,例如:SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id;

窗口函数如何计算每个部门的总工资?

使用SUM() OVER (PARTITION BY department_id)来计算,例如:SELECT employee_id, department_id, salary, SUM(salary) OVER (PARTITION BY department_id) AS total_salary FROM employees;

选择聚合函数还是窗口函数的依据是什么?

选择依据是是否需要汇总数据或保留所有行,聚合函数用于汇总,窗口函数用于保留详细数据。

在SQL中如何使用GROUP BY?

GROUP BY用于指定如何分组行,以便聚合函数可以计算每个组的结果。

窗口函数中的PARTITION BY有什么作用?

PARTITION BY用于定义在每个分区内应用计算的方式,帮助窗口函数计算分组内的值。

➡️

继续阅读