在 MySQL 结果的最后一行中获取总数?


要获取 MySQL 结果的最后一行中的总数,请使用以下语法 -

(
   SELECT yourColumnName1,
   yourColumnName2,
   yourColumnName3,
   .
   .
   N
   FROM yourTableName
)
UNION
(
   SELECT "yourMessage" AS anyAliasName1,
   SUM(yourColumnName1) AS anyAliasName2,
   SUM(yourColumnName2) AS anyAliasName3,
   .
   .
   N
   FROM yourTableName
);

为了理解上述语法,让我们创建一个表。创建表的查询如下 -

mysql> create table ProductDemo
   -> (
   -> ProductId varchar(10),
   -> ProductQuantity int,
   -> ProductValue int
   -> );
Query OK, 0 rows affected (0.63 sec)

使用插入命令在表中插入一些记录。查询如下 -

mysql> insert into ProductDemo values('Product-1',10,300);
Query OK, 1 row affected (0.10 sec)
mysql> insert into ProductDemo values('Product-2',5,200);
Query OK, 1 row affected (0.17 sec)
mysql> insert into ProductDemo values('Product-3',7,340);
Query OK, 1 row affected (0.13 sec)
mysql> insert into ProductDemo values('Product-4',20,500);
Query OK, 1 row affected (0.10 sec)
mysql> insert into ProductDemo values('Product-5',30,1000);
Query OK, 1 row affected (0.42 sec)

使用 select 语句显示表中的所有记录。查询如下 -

mysql> select *from ProductDemo;

以下是输出 -

+-----------+-----------------+--------------+
| ProductId | ProductQuantity | ProductValue |
+-----------+-----------------+--------------+
| Product-1 |              10 |          300 |
| Product-2 |               5 |          200 |
| Product-3 |               7 |          340 |
| Product-4 |              20 |          500 |
| Product-5 |              30 |         1000 |
+-----------+-----------------+--------------+
5 rows in set (0.00 sec)

以下是获取 MySQL 结果最后一行中总数的查询 -

mysql> (SELECT ProductId,
   -> ProductQuantity,
   -> ProductValue
   -> FROM ProductDemo)
   -> UNION
   -> (SELECT "Total" AS ProductName,
   -> SUM(ProductQuantity) AS TotalQuantity,
   -> SUM(ProductValue) AS TotalValue   
   -> FROM ProductDemo);

输出

+-----------+-----------------+--------------+
| ProductId | ProductQuantity | ProductValue |
+-----------+-----------------+--------------+
| Product-1 |              10 |          300 |
| Product-2 |               5 |          200 |
| Product-3 |               7 |          340 |
| Product-4 |              20 |          500 |
| Product-5 |              30 |         1000 |
| Total     |              72 |         2340 |
+-----------+-----------------+--------------+
6 rows in set (0.00 sec)

更新于:2019 年 7 月 30 日

530 次浏览

开启你的 职业生涯

完成课程,获得认证

开始学习
广告