使用 MySQL 在表的最后一行显示总和?
mysqlmysqli database
要显示表的最后一行的总和,可以使用 UNION。要了解如何操作,让我们创建一个表
mysql> create table showSumInLastRowDemo -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> StudentMarks int -> ); Query OK, 0 rows affected (0.69 sec)
使用 insert 命令在表中插入一些记录。 查询语句如下 −
mysql> insert into showSumInLastRowDemo(StudentName,StudentMarks) values('John',56); Query OK, 1 row affected (0.14 sec) mysql> insert into showSumInLastRowDemo(StudentName,StudentMarks) values('John',87); Query OK, 1 row affected (0.10 sec) mysql> insert into showSumInLastRowDemo(StudentName,StudentMarks) values('John',52); Query OK, 1 row affected (0.17 sec) mysql> insert into showSumInLastRowDemo(StudentName,StudentMarks) values('Carol',97); Query OK, 1 row affected (0.12 sec) mysql> insert into showSumInLastRowDemo(StudentName,StudentMarks) values('Larry',75); Query OK, 1 row affected (0.14 sec) mysql> insert into showSumInLastRowDemo(StudentName,StudentMarks) values('Larry',98); Query OK, 1 row affected (0.10 sec) mysql> insert into showSumInLastRowDemo(StudentName,StudentMarks) values('Carol',73); Query OK, 1 row affected (0.14 sec)
使用 select 语句显示表中的所有记录。查询如下 −
mysql> select *from showSumInLastRowDemo;
以下是输出 −
+-----------+-------------+--------------+ | StudentId | StudentName | StudentMarks | +-----------+-------------+--------------+ | 1 | John | 56 | | 2 | John | 87 | | 3 | John | 52 | | 4 | Carol | 97 | | 5 | Larry | 75 | | 6 | Larry | 98 | | 7 | Carol | 73 | +-----------+-------------+--------------+ 7 rows in set (0.00 sec)
这是使用 MySQL 在表的最后一行显示总和的查询
mysql> (select StudentName,StudentMarks from showSumInLastRowDemo) -> UNION -> (select 'TotalMarksOfAllStudent' as StudentName,sum(StudentMarks) StudentMarks from showSumInLastRowDemo);
以下是输出 −
+------------------------+--------------+ | StudentName | StudentMarks | +------------------------+--------------+ | John | 56 | | John | 87 | | John | 52 | | Carol | 97 | | Larry | 75 | | Larry | 98 | | Carol | 73 | | TotalMarksOfAllStudent | 538 | +------------------------+--------------+ 8 rows in set (0.00 sec)