Bigquery - 加入给出错误的结果
我试图在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。
如果有人能够帮忙,那将会很棒。谢谢!
请确保您加入的表没有任何重复键。也就是说,如果你要加入它有两行的表:
{A, 1}
{B, 2}
而且具有
{B, foo}
{B, bar}
和你做左连接在第一与第二的第一另一个表两者的列柱,你会比你开始时获得更多的行:
{A, 1, null}
{B, 2, foo}
{B, 2, bar}
(最坏的情况下可能产生的N×M行,其中N是行的第一个表的数量,M是多少在右表中的行)。
如果您确定连接的行为不正确,那么它可能是一个大问题。如果是这样,请添加评论,我们会进一步查看(例如,在日志中查找您的工作ID,看起来您也使用分析功能(LAG()
和LEAD()
)。您可以尝试没有这些问题并确保问题仍然复制?)
嘿,我很确定钥匙不会重复。我有另一个查询的外观。看起来如果有不同项目中的表格出现错误的结果,并且没有指定表格的所有项目标识符。以下是两个工作ID:** 719125837414:job_CHo_1hOFMBbxRl2fBLQ9URhjKUg **(无项目ID),** 719125837414:job_mJXH-fpoEEqubrZsRzhOcOUxaaE **(包含所有项目ID)。但是,现在我猜想,将项目ID添加到所有表中应该可以解决问题。谢谢! – Jen 2014-10-01 09:24:59
您提供的工作ID来自非常复杂的查询。你能用更简单的查询重现这一点吗?这将使后续更容易。另外,请确保您没有看到左侧的连接键与连接右侧的两个键相匹配,这可能会导致双倍的输出。 – 2014-09-30 18:53:58