【问题标题】:BigQuery Match Table Lookup for DCM Data Transfer用于 DCM 数据传输的 BigQuery 匹配表查找
【发布时间】:2017-08-16 00:40:05
【问题描述】:

使用 DCM 的 Data Transfer v2,您可以在 GCS 中获得 3 个主要数据表:

  • p_activity_166401
  • p_click_166401
  • p_impression_166401

还有大量的匹配表,例如:

  • p_match_table_advertisers_166401
  • p_match_table_campaigns_166401

表 1:p_activity_166401

Row    | Event_time    | User_ID | Advertiser_ID  | Campaign_ID | 
------ | ------------- | ------- | -------------  | ----------- |
1      | 149423090566  | AMsySZa | 5487307        | 9638421     |
2      | 149424804284  | 2vmdsXS | 5487307        | 10498283    |

表 2:p_match_table_advertisers_166401

Row    | Advertiser_ID  | Advertiser  | 
------ | -------------  | ----------- |
1      | 5487307        | Company A   |
2      | 5487457        | Company B   |

如何在表 2 中引用表 1 中的值并在查询中返回表 2 中的值?

我想要这样的结果:

Row    | Advertiser  | User_ID     | 
------ | ----------  | ----------- |
1      | Company A   | AMsySZa     |
2      | Company A   | 2vmdsXS     |

一直在这里和在线搜索,我似乎无法找到关于如何跨表查找的明确参考,提前道歉这是我错过的一件非常简单的事情:)

编辑 因此,在正确的方向上轻推,我找到了 JOIN 函数...

SELECT
  *
FROM
  [dtftv2_sprt.p_activity_166401]
INNER JOIN
  [dtftv2_sprt.p_match_table_advertisers_166401]
ON
  [p_activity_166401.Advertiser_ID] = 
 p_match_table_advertisers_166401.Advertiser_ID]
LIMIT
  100;

错误:找不到字段“p_activity_166401.Advertiser_ID”。

那绝对是表中的一个字段。

【问题讨论】:

标签: google-bigquery double-click-advertising


【解决方案1】:

所以这个查询非常适合创建一个包含所有数据的视图。

SELECT
  *
FROM
  [dtftv2_sprt.p_activity_166401]
INNER JOIN
  [dtftv2_sprt.p_match_table_advertisers_166401]
ON
  dtftv2_sprt.p_activity_166401.Advertiser_ID = dtftv2_sprt.p_match_table_advertisers_166401.Advertiser_ID;

使用视图,我现在可以运行较小的查询来提取我想要的数据。感谢 Mikhail Berlyant 引导我走向正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多