Skip to content

SQL Sum() 函数

SUM() 函数是一个聚合函数(aggregate function),用于计算数值列的总和。它在计算总销售额、库存数量或任何其他累积度量时至关重要。

SUM() 的主要特点:

  • 它作用于包含数值数据的单列。
  • 计算中忽略 NULL 值。如果组中列的所有值都为 NULL,SUM() 返回 NULL。
  • 它通常与 GROUP BY 子句一起使用,用于计算不同类别的总和。

SELECT SUM(numeric_column_name) FROM table_name WHERE condition;

  • numeric_column_name: 要对其值求和的列。
  • table_name: 包含该列的表。
  • condition: 可选子句,用于在求和前过滤行。

在我们的示例中,我们将使用一个概念性的 ‘OrderDetails’ 表,类似于 Northwind 示例数据库或任何电子商务系统中的表。

以下是 “OrderDetails” 表的示例结构和数据:

OrderDetailID (INT, Primary Key) OrderID (INT, Foreign Key) ProductID (INT, Foreign Key) Quantity (INT) UnitPrice (DECIMAL)

— Sample Data — 1, 10248, 11, 12, 14.00 2, 10248, 42, 10, 9.80 3, 10248, 72, 5, 34.80 4, 10249, 14, 9, 18.60 5, 10249, 51, 40, 42.40

以下 SQL 语句计算 “OrderDetails” 表中 “Quantity” 列的所有数量总和:

SELECT SUM(Quantity) AS TotalItemsOrdered
FROM OrderDetails;

此查询将返回单行单列的结果,列名为 TotalItemsOrdered,显示 Quantity 列中所有值的总和(例如,基于示例数据,12 + 10 + 5 + 9 + 40 = 76)。

SQL SUM() 与 GROUP BY 示例:每个订单的总数量

Section titled “SQL SUM() 与 GROUP BY 示例:每个订单的总数量”

要查找每个独立订单的商品总数量,可以将 SUM() 与 GROUP BY 子句结合使用:

SELECT OrderID, SUM(Quantity) AS TotalQuantityPerOrder
FROM OrderDetails
GROUP BY OrderID;

此查询将返回:

OrderIDTotalQuantityPerOrder
1024827
1024949

SUM() 函数广泛应用于报表和数据分析中:

  • 通过求和销售额计算总收入。
  • 汇总产品或类别的总销售单位。
  • 汇总开支进行财务分析。
  • 计算游戏应用中的总得分。

要了解如何在聚合后过滤分组,请查阅 SQL HAVING 子句。