SUM() function returns the sum of the expression.
mysql>
mysql> CREATE TABLE Classes
-> (
-> ClassID SMALLINT NOT NULL PRIMARY KEY,
-> Dept CHAR(4) NOT NULL,
-> Level ENUM('Upper', 'Lower') NOT NULL,
-> TotalStudents TINYINT UNSIGNED NOT NULL
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO Classes VALUES
-> (1001, 'ANTH', 'Upper', 25),
-> (1002, 'ANTH', 'Upper', 25),
-> (1003, 'MATH', 'Upper', 18),
-> (1004, 'ANTH', 'Lower', 19),
-> (1005, 'ENGL', 'Upper', 28),
-> (1006, 'MATH', 'Lower', 23),
-> (1007, 'ENGL', 'Upper', 25),
-> (1008, 'MATH', 'Lower', 29),
-> (1009, 'ANTH', 'Upper', 25),
-> (1010, 'ANTH', 'Lower', 30),
-> (1011, 'ENGL', 'Lower', 26),
-> (1012, 'MATH', 'Lower', 22),
-> (1013, 'ANTH', 'Upper', 27),
-> (1014, 'ANTH', 'Upper', 21),
-> (1015, 'ENGL', 'Lower', 25),
-> (1016, 'ENGL', 'Upper', 32);
Query OK, 16 rows affected (0.00 sec)
Records: 16 Duplicates: 0 Warnings: 0
mysql>
mysql>
mysql> SELECT Dept, Level, SUM(TotalStudents) AS Total
-> FROM Classes
-> GROUP BY Dept, Level WITH ROLLUP;
+------+-------+-------+
| Dept | Level | Total |
+------+-------+-------+
| ANTH | Upper | 123 |
| ANTH | Lower | 49 |
| ANTH | NULL | 172 |
| ENGL | Upper | 85 |
| ENGL | Lower | 51 |
| ENGL | NULL | 136 |
| MATH | Upper | 18 |
| MATH | Lower | 74 |
| MATH | NULL | 92 |
| NULL | NULL | 400 |
+------+-------+-------+
10 rows in set (0.00 sec)
mysql>
mysql> drop table Classes;
Query OK, 0 rows affected (0.00 sec)
Related examples in the same category