一种在MySql中对UNION的结果求和的简单方法

Ita*_*vka 27 mysql sql union

我有三个表的联合(t1,t2,t3).每次重新运行完全相同的记录数,第一列是id,第二列是:

1  10
2  20
3  20

1  30
2  30
3  10

1  20
2  40
3  50
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的SQL方式来总结它只得到:

1   60
2   80
3   80
Run Code Online (Sandbox Code Playgroud)

Jim*_*mmy 57

select id, sum(amount) from (
    select id,amount from table_1 union all
    select id,amount from table_2 union all
    select id,amount from table_3
) x group by id
Run Code Online (Sandbox Code Playgroud)

  • 使子查询成为另一个视图 (2认同)

zer*_*kms 13

SELECT id, SUM(amount) FROM
(
    SELECT id, SUM(amount) AS `amount` FROM t1 GROUP BY id
  UNION ALL
    SELECT id, SUM(amount) AS `amount` FROM t2 GROUP BY id
) `x`
GROUP BY `id`
Run Code Online (Sandbox Code Playgroud)

我将每个表分组并联合起来,因为我认为它可能更快,但你应该尝试两种解决方案.