Mysql Select 来自两个表的两个 SUM
Mysql Select with two SUM from two tables
我正在尝试 select 对两个表中的数据求和。
这就是他们的样子。
表 1:
products | revenue|
------------------|
product1 | 10 |
product2 | 20 |
product1 | 20 |
表 2:
products | revenue|
------------------|
product1 | 40 |
product2 | 30 |
product2 | 40 |
所以查询应该像这样对它们求和:
products | revenue|
------------------|
product1 | 70 |
product2 | 90 |
我试过这个和其他一些查询,但它们都不正确。
SELECT Table1.products, Table1.SUM(`revenue`), Table2.SUM(`revenue`)
FROM Table1
JOIN Table2
ON Table1.products = Table2.products
group by Table1.products;
你能帮我吗,在这种情况下正确的查询是什么?谢谢。
我建议使用 union all
然后 group by
:
select product, sum(revenue)
from ((select product, revenue from table1) union all
(select product, revenue from table2)
) tt
group by product;
这将确保所有产品都在结果集中,即使产品只在一个 table。
使用 UNION ALL 和 SUM 聚合函数:
SELECT products , SUM(revenue) revenue
FROM
(
SELECT products , revenue
FROM table1
UNION ALL
SELECT products , revenue
FROM table2
) A
GROUP BY products
我正在尝试 select 对两个表中的数据求和。 这就是他们的样子。
表 1:
products | revenue|
------------------|
product1 | 10 |
product2 | 20 |
product1 | 20 |
表 2:
products | revenue|
------------------|
product1 | 40 |
product2 | 30 |
product2 | 40 |
所以查询应该像这样对它们求和:
products | revenue|
------------------|
product1 | 70 |
product2 | 90 |
我试过这个和其他一些查询,但它们都不正确。
SELECT Table1.products, Table1.SUM(`revenue`), Table2.SUM(`revenue`)
FROM Table1
JOIN Table2
ON Table1.products = Table2.products
group by Table1.products;
你能帮我吗,在这种情况下正确的查询是什么?谢谢。
我建议使用 union all
然后 group by
:
select product, sum(revenue)
from ((select product, revenue from table1) union all
(select product, revenue from table2)
) tt
group by product;
这将确保所有产品都在结果集中,即使产品只在一个 table。
使用 UNION ALL 和 SUM 聚合函数:
SELECT products , SUM(revenue) revenue
FROM
(
SELECT products , revenue
FROM table1
UNION ALL
SELECT products , revenue
FROM table2
) A
GROUP BY products