Попытка присоединиться к таблице по датам, получить общее количество случаев - значения в настоящее время неверны - PullRequest
0 голосов
/ 14 апреля 2020

Выполнение этого оператора SQL (с предыдущей помощью сообщества) и получение желаемых результатов:

with combinedDeliveryData AS (
SELECT
  Impression_ID,
  Event_Time,
  DBM_Advertiser_ID,
  Campaign_ID,
  Ad_ID,
  Rendering_ID,
  Event_Type,
  Advertiser_ID,

FROM
  CampaignManager.p_impression
UNION ALL
SELECT
  Impression_ID,
  Event_Time,
  DBM_Advertiser_ID,
  Campaign_ID,
  Ad_ID,
  Rendering_ID,
  Event_Type,
  Advertiser_ID,
FROM
  CampaignManager.p_click

  ),
  advertiserData AS(
  SELECT *
  FROM CampaignManager.match_table_advertisers AS adv
  ),

 deduplicatedAdvertiser AS (
    SELECT Advertiser_ID, Advertiser,ARRAY_AGG(a LIMIT 1)[OFFSET(0)] 
    FROM advertiserData a
    GROUP BY 1,2),
  campaignData AS(
  SELECT *
  FROM CampaignManager.match_table_campaigns AS cpg
  ),

 deduplicatedCampaigns AS (
    SELECT Campaign_ID, Campaign,ARRAY_AGG(b LIMIT 1)[OFFSET(0)] 
    FROM campaignData b
    GROUP BY 1,2)
SELECT FORMAT_DATETIME("%F",DATETIME(TIMESTAMP_MILLIS( CAST(SUBSTR(CAST( clicks.Event_Time AS String),0,LENGTH(CAST( clicks.Event_Time AS String)) - 3) AS INT64 )),"America/Toronto")) AS exposureDate,adv.Advertiser,cpg.Campaign,clicks.Campaign_ID,COUNT(case Event_Type when 'VIEW' then 1 else null end) AS Impressions,COUNT(case Event_Type when 'CLICK' then 1 else null end) AS Clicks
FROM 
combinedDeliveryData AS clicks
LEFt JOIN deduplicatedAdvertiser as adv ON adv.Advertiser_ID = clicks.Advertiser_ID
LEFt JOIN deduplicatedCampaigns as cpg ON cpg.Campaign_ID = clicks.Campaign_ID

WHERE clicks.Campaign_ID = "123456789"
GROUP BY 1,2,3,4

Текущий ВЫХОД с правильными результатами
Дата: 2020- 04-06
Рекламодатель: РЕКЛАМОДАТОР
Кампания: CAMPAIGN
Идентификатор кампании: 123456789
Показы: 88417
Клики: 736

У меня возникла проблема чтобы присоединиться к финальному столу, а когда я это сделаю, количество показов и кликов стремительно возрастет, и, как и в моем предыдущем выпуске, вероятно, из-за того, что в новой таблице много Campaign_Ids.

Final Таблица Дата Advertiser_ID Campaign_ID Activity_ID

Эта последняя таблица содержит число конверсий, каждая строка представляет собой конверсию, связанную с Activity_ID.

Для каждой даты мне нужно чтобы добавить Activity_ID и Count к моему предыдущему выводу:

Требуемый вывод
Текущий выход с правильными результатами
Дата: 2020-04 -06
Рекламодатель: ADVERTIS ER A
Кампания: CAMPAIGN
Идентификатор кампании: 123456789
Показы: 88417
Клики: 736
Activity_ID: 99999
Счетчики (Количество Activity_ID): 56

Каждая Дата и Campaign_ID также могут иметь несколько идентификаторов активности с разным количеством.
Я пытался использовать ARRAY_AGG (LIMIT 1) [OFFSET (0)] с таблицей активности, но это не совсем работа.

Любая помощь будет очень важна, спасибо.

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