【发布时间】:2021-12-26 19:56:01
【问题描述】:
我设法在 BigQuery 上将两个表连接在一起,但是我认为它不正确匹配。 clients 包含 75 行的描述性客户端名称,而 stats 包含 37342 行的客户端统计信息。我正在尝试使用ExternalCustomerId 将这两个表与此查询连接在一起:
SELECT
clients.AccountDescriptiveName AS client_name,
stats.ExternalCustomerId AS client_id,
AverageCost,
AverageCpc,
AverageCpm,
AveragePosition
FROM `298114322003.google_ads1.p_Customer_2670156874` AS clients
JOIN `298114322003.google_ads1.p_AccountStats_2670156874` AS stats
ON clients.ExternalCustomerId = stats.ExternalCustomerId
但是,结果显示为 113026 行。我希望结果为 37342,因为这是 stats 表的结果。我用过RIGHT/LEFT JOIN 函数,结果还是一样。关于我应该如何解决这个问题的任何建议?谢谢!
AK
【问题讨论】:
-
您在上面发布的查询已经在使用内连接,它比外连接更多限制。这意味着切换到左连接或右连接只会导致结果集中的记录多于 37,342 条记录。
-
您的 sql 没有问题,所以这几乎肯定是您对数据的假设的问题。我怀疑
ExternalCustomerID在任一表中都不是唯一的,因此您得到的是一种笛卡尔积。发布一些示例数据和您想要的结果,我们可能会提供更多帮助。
标签: sql join google-bigquery google-ads-data-hub