Как добавить результат двух разных запросов? - PullRequest
0 голосов
/ 06 февраля 2019

Я делаю запрос, используя метод объединения, я хотел бы добавить одно из моих полей, которые имеют тот же сегмент, но с разными затратами.

Пример:

Select Segment, costs From tableA
union all
Select Segment, costs From tableb

Результат

Segment | costs
---------------
Seg 1   | 1000
seg 2   | 2000
Seg 3   | 3000
Seg 1   | -200
Seg 3   | -300

Требуемый результат:

Segment | costs
---------------
Seg 1   |  800
seg 2   | 2000
Seg 3   | 2700

В настоящее время я использую запрос со многими методами соединения, но мне хотелось бы получить представление о том, как решить эту проблемус "союзом всех"

1 Ответ

0 голосов
/ 06 февраля 2019

Используйте функцию агрегатора, например

SELECT Segment, SUM(Cost)Cost FROM
                          (Select Segment, costs From tableA 
                           UNION ALL 
                           Select Segment, costs From tableb)A
                           GROUP BY Segment

Вы можете использовать объединение всех для добавления результатов из двух независимых, но одинакового размера столбца и набора результатов типа, а затем вы можете суммировать свое поле, чтобы получить уникальный результат;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...