SQL Server SUM() 函数17 Mar 2025 | 4 分钟阅读 SQL Server 中的 SUM() 函数是一种聚合函数。我们使用此函数来计算指定列或表达式的一组值的总和。 它是一个内置函数,接受单个参数,该参数可以是列或有效表达式,并返回单个结果以总结输入数据集。此函数忽略 NULL 值。但是,当结果集没有任何行时,它将返回 NULL。它也可以与 WHERE、GROUP BY、ORDER BY 和 HAVING 子句一起使用,以获取过滤后的结果。 语法SQL Server 中 SUM() 函数的语法如下 此函数包含以下参数 aggregate_expression: 它是必需的表达式,表示我们要计算总和的列名。 table_name(s): 它指示我们要从中检索列的表的名称。 可以指定多个表。 WHERE 条件: 这是一个可选子句,用于定义应该满足的记录以供选择的条件。 DISTINCT: 它告诉函数仅对不同的值求和。 SUM() 函数示例让我们借助各种示例了解 SQL Server 中 SUM() 函数的工作原理。我们将采用 'employee_info' 表来实际演示 SUM 函数。该表包含以下数据 ![]() SUM 函数的基本示例此示例解释了 SUM 函数的基本用法,该函数返回指定列中所有值的总和。假设我们要计算给定表中总的工资额。我们可以编写如下查询 执行查询将返回以下输出 ![]() 带有 DISTINCT 子句的 SUM 函数DISTINCT 关键字仅计算表中唯一的数据。假设我们要计算 employee_info 表的 salary 列中唯一记录的总和。我们可以编写如下查询来实现相同的目的 执行查询将返回以下输出,其中显示了 salary 列中唯一值的总和 ![]() 带有 WHERE 子句的 SUM 函数WHERE 子句用于过滤表中的记录。此示例将使用 WHERE 子句和 SUM() 函数来计算工作时长大于 9 的员工的总工资。 当我们执行查询时,它将返回以下结果 ![]() 带有 GROUP BY 子句的 SUM 函数GROUP BY 子句用于将具有相同值的行分组为汇总行。它在聚合函数中非常有用,用于生成汇总报告。如果我们尝试在 SELECT 语句中组合聚合列和非聚合列,则会收到错误,如下所示 这是错误消息 ![]() 但是,如果我们使用 GROUP BY 子句,则不会抛出错误。以下查询将使用 SUM() 函数来计算每个职业的员工工资总和: 此查询查找与每个职业相关的员工,并对他们的总工资求和 ![]() 带有 ORDER BY 子句的 SUM 函数ORDER BY 子句用于按升序或降序对表进行排序。下面的示例将使用 SUM() 函数和 ORDER BY 子句,计算每个职业的员工工资总和,然后按总和工资的升序对结果集进行排序 执行该语句将显示以下输出 ![]() 带有 HAVING 子句的 SUM 函数HAVING 子句与 GROUP BY 子句一起使用以过滤分组行。此示例将使用 HAVING 子句和 SUM() 函数,计算每个职业的员工工资总和,然后检查聚合的工资是否大于 50000。如果为真,则相应记录将按总和工资的升序显示 执行该语句将返回以下输出 ![]() 带有 OVER() 的 SUM 函数OVER() 子句确定查询中的哪些行应用于该函数,该函数以什么顺序对其求值,以及何时应重新启动该函数的计算。下面的查询为 employee_info 表中的每个职业提供累计总销售额 执行查询将返回以下结果 ![]() 结论本文将解释关于如何在 SQL Server 中使用 SUM() 函数的完整概述。在使用此函数时,我们必须小心,因为它仅适用于数值数据类型。在这里,我们讨论了 SUM 函数的所有用例,并提供了各种示例,例如如何使用 WHERE、GROUP BY、HAVING 和 OVER 子句从表中获取总和值。 |
我们请求您订阅我们的新闻通讯以获取最新更新。