MySQL查询从具有相似列“ UP”的5张表中计算总和?
为此,请将UNIONALL与一起使用SUM()
。让我们创建5个表-
mysql> create table DemoTable1977 ( UP int ); mysql> insert into DemoTable1977 values(10); mysql> insert into DemoTable1977 values(20); mysql> select * from DemoTable1977; +------+ | UP | +------+ | 10 | | 20 | +------+ 2 rows in set (0.00 sec) mysql> create table DemoTable1978 ( UP int ); mysql> insert into DemoTable1978 values(30); mysql> select * from DemoTable1978; +------+ | UP | +------+ | 30 | +------+ 1 row in set (0.00 sec) mysql> create table DemoTable1979 ( UP int ); mysql> insert into DemoTable1979 values(40); mysql> select * from DemoTable1979; +------+ | UP | +------+ | 40 | +------+ 1 row in set (0.00 sec) mysql> create table DemoTable1980 ( UP int ); mysql> insert into DemoTable1980 values(50); mysql> select * from DemoTable1980; +------+ | UP | +------+ | 50 | +------+ 1 row in set (0.00 sec) mysql> create table DemoTable1981 ( UP int ); mysql> insert into DemoTable1981 values(60); mysql> select * from DemoTable1981; +------+ | UP | +------+ | 60 | +------+ 1 row in set (0.00 sec)
这是一个查询,用于从5个表中计算总和,其中一个列名为“UP”-
mysql> select sum(TotalSum) from ( select sum(UP) as TotalSum from DemoTable1977 union all select sum(UP) from DemoTable1978 union all select sum(UP) from DemoTable1979 union all select sum(UP) from DemoTable1980 union all select sum(UP) from DemoTable1981 ) tbl;
这将产生以下输出-
+---------------+ | sum(TotalSum) | +---------------+ | 210 | +---------------+ 1 row in set (0.00 sec)