Bigquery - 加入错误的结果

时间:2014-09-30 10:07:44

标签: google-bigquery

我正在尝试在BigQuery中加入两个表。

select p.UserId UserId , SessionMonth, LifeCycle, f.NetRev NetRev
from TABLEA p
left join each TABLEB f
on p.UserId = f.UserId

由于某种原因,联接中的f.NetRev加倍。

这是工作ID:719125837414:job_Kotq0SggPq8xtgUGOu5p6yR9Ag0。

如果有人可以提供帮助,那就太棒了。谢谢!

1 个答案:

答案 0 :(得分:1)

请确保您加入的表格没有任何重复的密钥。也就是说,如果你要加入一个有两行的表:

{A, 1}
{B, 2} 

和另一个有

的表
{B, foo}
{B, bar}

并且您在第一个列的第一列上使用第二列进行左连接,您将获得比您开始时更多的行:

{A, 1, null}
{B, 2, foo}
{B, 2, bar}

(最坏的情况是,这可以生成N x M行,其中N是第一个表中的行数,M是右表中的行数)。

如果您确定联接确实行为不正确,则可能是一个很大的错误。如果是这样,请添加评论,我们会进一步查看(例如,在日志中查找您的工作ID,看起来您也使用分析函数(LAG()LEAD())。你可以尝试没有这些,并确保问题仍然重现?)