@DenisBezukhov

Как объединить две, три и более таблиц на SQL?

Например у меня есть 3 таблицы:
Таблица 1 (содержит данные source A): Date, Campaign, Ad, Impression, Click, Cost
Таблица 2 (содержит данные sourse B): DateTime, Campaign, Ad, Impression, Click, Cost
Таблица 3 (содержит данные различных sourse): Date, Source, Campaign, Ad, App Install, Purchase

Мне требуется написать запрос, который объединил бы все 3 таблицы и выводил поля за текущий месяц:
Date, Source, Campaign, Ad, SUM(Click), SUM(Cost), SUM(App Install), SUM(Purchase)

Замечания:
sourse в таблице 3 может быть больше 2
пример поля date: '2021-05-01',
пример поля datetime '2021-05-01 12:31:47'
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@galaxy
примерно так
select `Date`, source, Campaign, Ad, SUM(Click), SUM(Cost), SUM(`App Install`), SUM(Purchase)
  from (
    select `Date`, 'source A' as source,  Campaign, Ad, Click, Cost, null as `App Install`, null as Purchase from table1
    union
    select date(`DateTime`), 'source B', Campaign, Ad, Click, Cost, null, null from table2
    union
    select `Date`, Source, Campaign, Ad, null, null, `App Install`, Purchase from table3
  ) t
group by `Date`, source, Campaign, Ad
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы