Mysql 查找不同表的不同列之和的总和
假设我们有3个表A、B和C,它们的列相同,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) ; 欢迎提
地区
,人口
我需要在一个查询中从所有表中找到所有
填充的总和。
我对查询不太精通,还没有建立结构,但我想知道下面这样的查询是否有效
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:)。