在 BigQuery 上连接表时遇到问题
Trouble with joining tables on BigQuery
我设法在 BigQuery 上将两个 table 连接在一起,但是,我认为它匹配不正确。 clients
包含 75 行的描述性客户名称,而 stats
包含 37342 行的客户统计信息。我正在尝试通过以下查询将这两个 table 使用它们的 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
table 的结果。我使用了 RIGHT/LEFT JOIN
函数,结果还是一样。关于我应该如何解决这个问题有什么建议吗?谢谢!
AK
看起来您的 stats
table 对同一个 ExternalCustomerId
有多个行(这可以理解,例如,如果它被分区并且您在几天内有不同的数据).
尝试进一步探索如下:
SELECT count(*) as total, count(distinct ExternalCustomerId) as uniques
FROM `298114322003.google_ads1.p_AccountStats_2670156874`
如果您复制了 ExternalCustomerId
,那么每个客户行都将乘以 stats
table.
中的匹配行数
我设法在 BigQuery 上将两个 table 连接在一起,但是,我认为它匹配不正确。 clients
包含 75 行的描述性客户名称,而 stats
包含 37342 行的客户统计信息。我正在尝试通过以下查询将这两个 table 使用它们的 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
table 的结果。我使用了 RIGHT/LEFT JOIN
函数,结果还是一样。关于我应该如何解决这个问题有什么建议吗?谢谢!
AK
看起来您的 stats
table 对同一个 ExternalCustomerId
有多个行(这可以理解,例如,如果它被分区并且您在几天内有不同的数据).
尝试进一步探索如下:
SELECT count(*) as total, count(distinct ExternalCustomerId) as uniques
FROM `298114322003.google_ads1.p_AccountStats_2670156874`
如果您复制了 ExternalCustomerId
,那么每个客户行都将乘以 stats
table.