Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查找不同表的不同列之和的总和_Mysql_Sql - Fatal编程技术网

Mysql 查找不同表的不同列之和的总和

Mysql 查找不同表的不同列之和的总和,mysql,sql,Mysql,Sql,假设我们有3个表A、B和C,它们的列相同,地区,人口 我需要在一个查询中从所有表中找到所有填充的总和。 我对查询不太精通,还没有建立结构,但我想知道下面这样的查询是否有效 select Sum(SUM1+SUM2+SUM3) from tableA A, tableB B, tableC C where SUM1 = sum(A.population) and SUM2 = sum(B.population) and SUM3 = sum(C.population) ; 欢迎提

假设我们有3个表A、B和C,它们的列相同,
地区
人口

我需要在一个查询中从所有表中找到所有
填充的总和。
我对查询不太精通,还没有建立结构,但我想知道下面这样的查询是否有效

select Sum(SUM1+SUM2+SUM3) 
from tableA A, tableB B, tableC C 
where SUM1 = sum(A.population) 
  and SUM2 = sum(B.population) 
  and SUM3 = sum(C.population) ;
欢迎提出任何其他建议。

试试:

SELECT COALESCE((SELECT SUM(population) FROM TableA),0) + 
       COALESCE((SELECT SUM(population) FROM TableB),0) +
       COALESCE((SELECT SUM(population) FROM TableC),0) AS TotalPopulation
试试:

SELECT COALESCE((SELECT SUM(population) FROM TableA),0) + 
       COALESCE((SELECT SUM(population) FROM TableB),0) +
       COALESCE((SELECT SUM(population) FROM TableC),0) AS TotalPopulation

您可以使用
union all

select sum(t.population)
from (
   select population from table A
   union all
   select population from table B
   union all
   select population from table A
) t

您可以使用
union all

select sum(t.population)
from (
   select population from table A
   union all
   select population from table B
   union all
   select population from table A
) t

其中一个
sum
s可能返回
null
,从而导致累积和也变为
null
,对于一般情况解决方案,您可以使用
合并
来防止这种行为。@potashin抓得好!我已经编辑了我的答案,非常感谢。非常感谢Giorgos:)。其中一个
sum
s可能返回
null
,从而导致累积和也变成
null
,对于一般情况解决方案,您可以使用
coalesce
来防止这种行为。@potashin捕捉得好!我编辑了我的答案,非常感谢。非常感谢Giorgos:)。非常感谢potashin:)。非常感谢potashin:)。