2015-06-23 83 views
2

你知道爲什麼這不會在bigquery中工作嗎?BigQuery與連接錯誤

SELECT TOP(Score.goals, 10), COUNT(*) 
FROM [cloude-sandbox:public.match_goals_table] AS Score left JOIN 
    [cloude-sandbox:public.match_games_table] AS Teams 
    ON Teams.team_name = Score.goals; 

查詢失敗 錯誤:加入鍵目標(Int64的)和TEAM_NAME(串)具有不能被自動強制類型。

+1

錯誤很明顯。爲JOIN選擇正確的列。或者,強迫這兩列似乎並不是要連接在一起的類型。 –

回答

4

BQ要求連接密鑰類型完全匹配。你可以用的加盟一側的子查詢以最小的性能損失進行轉換:

SELECT TOP(Score.goals, 10), COUNT(*) 
FROM 
    (SELECT goals, STRING(goals) AS goals_str 
    FROM [cloude-sandbox:public.match_goals_table]) AS Score 
LEFT JOIN 
    [cloude-sandbox:public.match_games_table] AS Teams 
ON Teams.team_name = Score.goals_str; 

我選擇的目標從的加入既是一個整數和一個字符串,以便您可以加入左側該字符串,但在整數上計算TOP。

但是你真的想加入隊名和球門號嗎?也許這只是一個例子,但這種聯合似乎不太可能產生任何輸出。