MariaDB Sum()函數

MariaDB SUM()函數用於返回運算式求和的值。

語法:

SELECT SUM(aggregate_expression)
FROM tables
[WHERE conditions];

數據準備

"testdb"資料庫中創建一個"students"表,並插入一些數據。參考以下創建語句 -

USE testdb;
DROP TABLE students;
-- 創建新表
CREATE TABLE students(
    student_id INT NOT NULL AUTO_INCREMENT,
    student_name VARCHAR(100) NOT NULL,
    student_address VARCHAR(40) default NULL,
    admission_date DATE,
    score float(4, 1) default NULL,
    PRIMARY KEY ( student_id )
);
-- 插入數據
INSERT INTO students
(student_id, student_name, student_address,score, admission_date)
VALUES(1,'Maxsu','Haikou', 99.5,'2017-01-07 00:00:00');

INSERT INTO students
(student_id, student_name, student_address, score, admission_date)
VALUES
(2,'Crurry','Beijing',86,'2016-05-07 00:00:00'),
(3,'JMaster','Beijing',91,'2016-05-07 00:00:00'),
(4,'Mahesh','Guangzhou',78,'2016-06-07 00:00:00'),
(5,'Kobe','Shanghai',89,'2016-02-07 00:00:00'),
(6,'Blaba','Shengzhen',100,'2016-08-07 00:00:00');

1. SUM()函數與單運算式

示例:

計算student_id大於1Student表的總分數。參考以下查詢語句 -

SELECT SUM(Score) AS "Total Score"
FROM students
WHERE student_id > 1;

執行上面查詢語句,得到以下結果 -

MariaDB [testdb]> SELECT SUM(Score) AS "Total Score"
    -> FROM students
    -> WHERE student_id > 1;
+-------------+
| Total Score |
+-------------+
|       444.0 |
+-------------+
1 row in set (0.00 sec)

2. SUM()函數與DISTINCT子句

可以使用SUM函數的DISTINCT子句來避免重複值的總和。

再插入一條重複的數據 -

INSERT INTO students
(student_name, student_address,score, admission_date)
VALUES('Maxsu','Haikou', 99.5,'2017-11-07 00:00:00');

當前資料庫中的記錄如下 -

MariaDB [testdb]> select * from students;
+------------+--------------+-----------------+----------------+-------+
| student_id | student_name | student_address | admission_date | score |
+------------+--------------+-----------------+----------------+-------+
|          1 | Maxsu        | Haikou          | 2017-01-07     |  99.5 |
|          2 | Crurry       | Beijing         | 2016-05-07     |  86.0 |
|          3 | JMaster      | Beijing         | 2016-05-07     |  91.0 |
|          4 | Mahesh       | Guangzhou       | 2016-06-07     |  78.0 |
|          5 | Kobe         | Shanghai        | 2016-02-07     |  89.0 |
|          6 | Blaba        | Shengzhen       | 2016-08-07     | 100.0 |
|          7 | Maxsu        | Haikou          | 2017-11-07     |  99.5 |
+------------+--------------+-----------------+----------------+-------+
7 rows in set (0.00 sec)

示例:

SELECT SUM(DISTINCT Score) AS "Total Score"
FROM students
WHERE student_name = 'Maxsu';

執行上面查詢語句,得到以下結果 -

MariaDB [testdb]> SELECT SUM(DISTINCT Score) AS "Total Score"
    -> FROM students
    -> WHERE student_name = 'Maxsu';
+-------------+
| Total Score |
+-------------+
|        99.5 |
+-------------+
1 row in set (0.00 sec)

上一篇: MariaDB Count()函數 下一篇: MariaDB Min()函數