Как суммировать данные из двух таблиц sql - PullRequest
0 голосов
/ 04 августа 2020

У меня есть набор результатов из 2 таблиц

Table1

      Mediaid  FilteredDocsCount FileSize
        2000     5                  20
        3000     2                  25

Таблица2

        Mediaid   FilteredDocsCount  FileSize
         2000        3                  50
         2001        4                  20
         2005        2                  23
         3000        3                  22

Моя цель - добавить отфильтрованныеDocsCount и размер файла из этих таблиц. Ожидаю такой результат:

    Mediaid   FilteredDocsCount  Filesize
     2000        8                  70
     2001        4                  20
     2005        2                  23
     3000        5                  47

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Простое объединение, сгруппированное по mediaid, должно помочь

select mediaid, sum(FilteredDocsCount ), sum(filesize)
from 
(select *
from table1 tb1
union all 
select *
from table2) sub
group by mediaid

Посмотрите, как это работает в этой скрипте.

0 голосов
/ 04 августа 2020

Это похоже на внешнее соединение:

select t2.mediaid, t2.FilteredDocsCount + coalesce(t1.FilteredDocsCount, 0),
       t2.filesize + coalesce(t1.filesize, 0)
from table2 t2 left join
     table1 t1
     on t2.mediaid = t1.mediaid
...