SQL SUM() 函数

SQL SUM() 函数

SUM() 函数用于计算指定数值列中值的总和。 SUM() 函数会忽略列中的 NULL 值。

SUM() 语法

SELECT SUM(column_name)
FROM table_name
WHERE condition;

实例

返回 OrderDetails 表中所有 Quantity 字段的总和:

SELECT SUM(Quantity)
FROM OrderDetails;

亲自试一试

演示数据库

以下是在实例中使用的 OrderDetails 表的片段:

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40

添加 WHERE 子句

您可以添加一个 WHERE 子句来指定条件:

实例

返回 ProductID11 的产品的 Quantity 字段的总和:

SELECT SUM(Quantity)
FROM OrderDetails
WHERE ProductId = 11;

亲自试一试

使用别名

使用 AS 关键字为汇总列命名。

实例

将列命名为 total

SELECT SUM(Quantity) AS total
FROM OrderDetails;

亲自试一试

将 SUM() 与 GROUP BY 结合使用

在这里,我们使用 SUM() 函数和 GROUP BY 子句,返回 OrderDetails 表中每个 OrderIDQuantity

实例

SELECT OrderID, SUM(Quantity) AS [Total Quantity]
FROM OrderDetails
GROUP BY OrderID;

亲自试一试

您将在本教程的稍后部分中学习更多有关 GROUP BY 子句的内容。

带有表达式的 SUM()

SUM() 函数内的参数也可以是一个表达式。

如果我们假设 OrderDetails 列中的每个产品成本为 10 美元,则可以通过将每个数量乘以 10 来计算出总收益(美元):

实例

在 SUM() 函数中使用一个表达式:

SELECT SUM(Quantity * 10)
FROM OrderDetails;

亲自试一试

我们也可以将 OrderDetails 表与 Products 表连接起来,以查找实际金额,而不是假设它为 10 美元:

实例

OrderDetailsProducts 连接起来,并使用 SUM() 查找总金额:

SELECT SUM(Price * Quantity)
FROM OrderDetails
LEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;

亲自试一试

您将在本教程的稍后部分中学到更多有关连接的内容。