Запросы BigQuery добавление только таблиц с возвратом информации об объявлениях в Facebook Возвращает столбец website_ctr типа ARRAY в SELECT DISTINCT - PullRequest
0 голосов
/ 24 апреля 2019

Я синхронизирую все идеи Facebook с BigQuery.Это таблица только для добавления, что означает, что мне нужно получить последнюю партию.Поэтому я пытаюсь выбрать последнюю партию, используя campaign_id в качестве первичного ключа.Но когда я пытаюсь сделать это с запросом из документов, я получаю эту ошибку.Кто-нибудь знает, как запросить последнюю партию из BigQuery?

Я использую интеграцию stichdata для передачи данных в BigQuery.Ссылки: https://www.stitchdata.com/docs/data-structure/querying-append-only-tables#latest-version-every-row https://www.stitchdata.com/docs/integrations/saas/facebook-ads#ads-insights

Вот вопрос запроса от BigQuery

Column website_ctr of type ARRAY cannot be used in SELECT DISTINCT

Вот запрос, который я использую

SELECT DISTINCT o.* FROM `xxx.facebook_ads.ads_insights` o
INNER JOIN (
     SELECT campaign_id,
            MAX(_sdc_sequence) AS seq,
            MAX(_sdc_batched_at) AS batch
    FROM `xxx.facebook_ads.ads_insights`
    GROUP BY campaign_id) oo
ON o.campaign_id = oo.campaign_id
AND o._sdc_sequence = oo.seq
AND o._sdc_batched_at = oo.batch

1 Ответ

2 голосов
/ 25 апреля 2019

Попробуйте ниже для BigQuery Standard SQL

#standardSQL
SELECT ANY_VALUE(o).*
FROM `xxx.facebook_ads.ads_insights` o
INNER JOIN (
  SELECT campaign_id,
    MAX(_sdc_sequence) AS seq,
    MAX(_sdc_batched_at) AS batch
  FROM `xxx.facebook_ads.ads_insights`
  GROUP BY campaign_id
) oo
ON o.campaign_id = oo.campaign_id
AND o._sdc_sequence = oo.seq
AND o._sdc_batched_at = oo.batch
GROUP BY o.campaign_id 

Как видите, изменение действительно в первой строке вашего кода (в операторе SELECT) и в дополнительной строке в конце запроса (GROUP BY) - так относительно просто исправить

Я не знаком с данными аналитики Facebook, поэтому не могу проверить выше - но для простых случаев, которые я мог бы перепроектировать из деталей в вопросе - это должно работать!

...