MariaDB SUM() 函数的基础用法与实例
MariaDB SUM()
函数用来计算一组值的总和。
MariaDB SUM()
函数用来计算一组值的总和。它通常与 SELECT
语句的 GROUP BY
子句一起使用,以便对不同的值组计算各组的总和。该函数在需要计算总计、汇总统计数据等场合非常有用。
语法
MariaDB SUM()
函数的语法如下:
SUM(expression)
expression
是要计算总和的数值表达式或字段。如果指定的 expression
中包含 NULL
值,则 NULL
值会被忽略掉。
该函数返回 expression
的总和。返回值的数据类型取决于计算过程中使用的值。
实例
计算一个数值字段的总和
DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
order_id INT PRIMARY KEY,
product VARCHAR(100),
quantity INT,
price DECIMAL(10,2)
);
INSERT INTO orders VALUES
(1, 'Product A', 2, 10.50),
(2, 'Product B', 3, 7.25),
(3, 'Product A', 5, 10.50);
SELECT SUM(quantity) AS total_quantity,
SUM(price * quantity) AS total_revenue
FROM orders;
以下是该语句的输出:
+----------------+---------------+
| total_quantity | total_revenue |
+----------------+---------------+
| 10 | 95.25 |
+----------------+---------------+
本示例计算订单表中所有订单的总数量和总收入。其中 SUM(quantity)
计算了所有订单数量之和,而 SUM(price * quantity)
计算了每个订单收入乘积的总和。
使用 GROUP BY 分组统计
SELECT product, SUM(quantity) AS total_quantity
FROM orders
GROUP BY product;
以下是该语句的输出:
+-----------+----------------+
| product | total_quantity |
+-----------+----------------+
| Product A | 7 |
| Product B | 3 |
+-----------+----------------+
本示例使用 GROUP BY
子句对订单按产品分组,再使用 SUM(quantity)
计算每种产品的订单总数量。
对 NULL 值的处理
DROP TABLE IF EXISTS scores;
CREATE TABLE scores (
student VARCHAR(50),
score INT
);
INSERT INTO scores VALUES
('Alice', 85),
('Bob', 92),
('Charlie', NULL),
('David', 78);
SELECT SUM(score) AS total_score
FROM scores;
以下是该语句的输出:
+-------------+
| total_score |
+-------------+
| 255 |
+-------------+
在本示例中,scores
表中 Charlie 的成绩为 NULL
。SUM()
函数会自动忽略掉 NULL
值,因此总分的计算结果为 85 + 92 + 78 = 255。
配合 HAVING 子句过滤组
SELECT product, SUM(quantity) AS total_quantity
FROM orders
GROUP BY product
HAVING SUM(quantity) > 5;
以下是该语句的输出:
+-----------+----------------+
| product | total_quantity |
+-----------+----------------+
| Product A | 7 |
+-----------+----------------+
本示例在使用 GROUP BY
分组统计后,再使用 HAVING
子句过滤出订单总数大于 5 的产品组。
相关函数
以下是几个与 MariaDB SUM()
相关的几个函数:
- MariaDB
AVG()
函数用来计算一组值的平均值。 - MariaDB
COUNT()
函数用于统计行数或非 NULL 值的数量。 - MariaDB
MAX()
函数返回一组值中的最大值。 - MariaDB
MIN()
函数返回一组值中的最小值。
结论
MariaDB SUM()
是一个非常常用的聚合函数,用于计算数值字段的总和。无论是计算订单总收入、统计总分数,还是其他需要汇总数据的场景,该函数都可以发挥重要作用。结合 GROUP BY
和其他聚合函数的使用,可以实现更加复杂的统计分析需求。在编写涉及数据统计和计算的查询或存储过程时,熟练掌握 SUM()
函数的用法将会提高开发效率。