2014-09-30 184 views
1

我試圖在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。

如果有人能夠幫忙,那將會很棒。謝謝!

+0

您提供的工作ID來自非常複雜的查詢。你能用更簡單的查詢重現這一點嗎?這將使後續更容易。另外,請確保您沒有看到左側的連接鍵與連接右側的兩個鍵相匹配,這可能會導致雙倍的輸出。 – 2014-09-30 18:53:58

回答

1

請確保您加入的表沒有任何重複鍵。也就是說,如果你要加入它有兩行的表:

{A, 1} 
{B, 2} 

而且具有

{B, foo} 
{B, bar} 

和你做左連接在第一與第二的第一另一個表兩者的列柱,你會比你開始時獲得更多的行:

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

(最壞的情況下可能產生的N×M行,其中N是行的第一個表的數量,M是多少在右表中的行)。

如果您確定連接的行爲不正確,那麼它可能是一個大問題。如果是這樣,請添加評論,我們會進一步查看(例如,在日誌中查找您的工作ID,看起來您也使用分析功能(LAG()LEAD())。您可以嘗試沒有這些問題並確保問題仍然複製?)

+0

嘿,我很確定鑰匙不會重複。我有另一個查詢的外觀。看起來如果有不同項目中的表格出現錯誤的結果,並且沒有指定表格的所有項目標識符。以下是兩個工作ID:** 719125837414:job_CHo_1hOFMBbxRl2fBLQ9URhjKUg **(無項目ID),** 719125837414:job_mJXH-fpoEEqubrZsRzhOcOUxaaE **(包含所有項目ID)。但是,現在我猜想,將項目ID添加到所有表中應該可以解決問題。謝謝! – Jen 2014-10-01 09:24:59