BigQuery查询仅附加具有Facebook广告见解的表,返回SELECT DISTINCT

时间:2019-04-24 15:11:22

标签: google-bigquery data-warehouse google-data-studio

我正在将所有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 个答案:

答案 0 :(得分:2)

尝试下面的BigQuery标准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的见解数据,因此无法在上面进行测试-但对于一些简单的案例,我可以从问题中的细节进行逆向工程师-它应该可以工作!