SQL 中的聚合函数是从数据库表中的一组行计算单个值的操作。 它们通常用于汇总或分析数据,例如计数记录、计算平均值或查找最大值和最小值。 最常用的聚合函数包括 COUNT()
、SUM()
、AVG()
、MIN()
和 MAX()
。 例如,COUNT(*)
返回表中的总行数,而 SUM(sales)
将 sales
列中的所有值相加。 这些函数通常与 GROUP BY
子句结合使用,以将结果组织成组,从而可以分析数据的子集,例如每个地区的销售额或每个部门的平均工资。
聚合函数的一个关键方面是它们与分组和过滤的交互。 当与 GROUP BY
结合使用时,它们会分别处理每个组。 例如,SELECT department, AVG(salary) FROM employees GROUP BY department
计算每个部门的平均工资。 然后,HAVING
子句用于在聚合后过滤组,这与在聚合之前过滤行的 WHERE
不同。 例如,SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 50000
过滤掉平均工资低于 50,000 的部门。 WHERE
和 HAVING
之间的这种区别对于编写准确的查询至关重要。
聚合函数也以不同的方式处理 NULL
值。 大多数函数(如 SUM()
或 AVG()
)完全忽略 NULL
。 例如,AVG(salary)
排除 salary
为 NULL
的行。 但是,COUNT(*)
会计算所有行,而不管 NULL
,而 COUNT(column)
仅计算该列中非 NULL
值。 开发人员还可以在聚合中使用 DISTINCT
来处理唯一值,例如 COUNT(DISTINCT department)
来计算唯一部门。 像 STDDEV()
(标准差)或 VAR()
(方差)这样的高级函数提供统计见解。 了解这些细微差别可确保准确的数据摘要,这对于应用程序中的报告、仪表板或数据驱动的决策至关重要。