Я пытаюсь объединить маркетинговые данные, которые мы имеем в Google, с данными, которые мы имеем в Facebook, по местоположению.Первый оператор SELECT получает столбцы из таблицы, созданной с помощью вложенного оператора SELECT в строке 5. Затем мне нужно соединить это с другой таблицей, чтобы получить имя DMA (строка 11).Наконец, я объединяю это с данными Facebook.Когда я запускаю запрос, результаты по кликам, расходам и показам все учитываются, когда я суммирую все DMA.Вместо этого они должны составлять от 10 до 100 миллионов, в зависимости от показателя.
Я действительно новичок в SQL, поэтому я уверен, что есть лучшие способы подумать о том, как решить эту проблему.Я уверен, что мой синтаксис не соответствует стандартам лучшей практики.Я приветствую все отзывы.
SELECT sum(sub.clicks) AS clicks, sum(sub.spend) AS spend,
sum(sub.impressions) AS impressions, sub.date,
location_with_adwordsID.DMA_NAME, sub.ad_network_type_2
FROM
(SELECT sum(clicks) AS clicks, sum(cost) AS spend,
sum(impressions) AS
impressions, cast(date AS Date) AS date, city_criteria_id ,
ad_network_type_2
FROM adwords.location
GROUP BY date, city_criteria_id, ad_network_type_2) AS sub
LEFT JOIN location_conversion.location_with_adwordsID ON
CAST(sub.city_criteria_id AS STRING) =
CAST(location_with_adwordsID.criteria_id AS STRING)
GROUP BY date, DMA_NAME, ad_network_type_2
UNION ALL
(SELECT sum(clicks) AS clicks, sum(spend) AS spend, sum(impressions) AS
impressions, CAST(date AS Date) AS date, lower(dma) AS fbdma,
'Facebook' as Source FROM
facebook_ad_insights_dma.ad_insights_locations
GROUP BY Date, fbdma)
Вот структура таблицы 'location_with_adwordsID'.https://drive.google.com/file/d/1oKd3O_fVOjwO1EnZ5LFjHIiB3EB32be5/view?usp=sharing
Вот структура таблицы adwords.location.https://drive.google.com/file/d/1XlHC7Ug2yW9XNkNR6kolmmJPrfUa-S6n/view?usp=sharing
Причина ЛЕВОГО СОЕДИНЕНИЯ заключается в следующем: Google Ads предоставляет мне данные о местоположении с, казалось бы, проприетарным 'city_id'.Чтобы объединить эти данные с данными Facebook, мне нужно добавить столбец DMA в таблицу AdWords, а затем объединить FB и Google.Вот где появляется мой 'location_with_adwordsID', представляющий собой таблицу, созданную Google, в которой есть city_id по DMA и почтовому индексу.Таким образом, мой желаемый результат после этого соединения - это таблица с тем же числом строк, что и в «adwords.location», но с дополнительным столбцом «DMA».
Спасибо.