простой способ суммировать результат ОБЪЕДИНЕНИЯ в MySql

У меня есть объединение трех таблиц (t1, t2, t3). Каждое повторное выполнение точно то же количество записей, первый столбец является идентификатором, второй суммой:

1  10
2  20
3  20

1  30
2  30
3  10

1  20
2  40
3  50

Есть ли простое sql способом суммировать, это до только добирается:

1   60
2   80
3   80
27
задан Itay Moav -Malimovka 5 March 2010 в 15:16
поделиться

3 ответа

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
57
ответ дан 28 November 2019 в 04:28
поделиться
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`

Я сгруппировал каждую таблицу и объединил ее, потому что думаю, что это может быть быстрее, но вы должны попробовать оба решения.

13
ответ дан 28 November 2019 в 04:28
поделиться

Подзапрос:

SELECT id, SUM(amount)
FROM ( SELECT * FROM t1
       UNION ALL SELECT * FROM t2
       UNION ALL SELECT * FROM t3
     )
GROUP BY id
3
ответ дан 28 November 2019 в 04:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: