替换表1中的NULL值.列1中的值来自表2.Column2,其中Table1有多个相同值的行



让我首先为这个可能令人困惑的标题道歉。我的数据分析师之旅才刚刚开始。我在BIGQUERY工作与一个极端风暴数据集(表1)它具有LAT、LONG、STATE字段。我想用状态信息数据集(TABLE2)中的一般LAT/LONG值替换纬度和经度字段中的空值还包含LAT、LONGSTATE值。在TABLE1中,每条记录都有一个唯一的EVENT_ID,有140万行。在表2中,每个STATE都是一个唯一的记录。

我试过:

Update TABLE1 
SET TABLE1.BEGIN_LAT=TABLE2.latitude
From TABLE1
INNER JOIN TABLE2 
ON TABLE1.STATE = TABLE2.STATE
WHERE TABLE1.BEGIN_LAT IS NULL

我得到一个错误,因为TABLE1包含多个行具有相同的状态,我试图使用它作为我的主键。我知道我做错了什么,但不知道如何做正确的方法。在BigQuery中我想做的是什么?

任何帮助都会很感激。甚至还有如何提问的建议!:)

谢谢。

我相信你在你的查询中有一些别名表1在更新和表1在From。在这种情况下,您可以向WHERE子句添加条件以匹配EVENT_ID。这样的:

UPDATE TABLE1 TABLE1_U
SET TABLE1_U.BEGIN_LAT=TABLE2.latitude
FROM TABLE1 TABLE1_F
INNER JOIN TABLE2 
ON TABLE1_F.STATE = TABLE2.STATE
WHERE TABLE1_U.BEGIN_LAT IS NULL AND TABLE1_U.EVENT_ID = TABLE1_F.EVENT_ID

另外,我更喜欢做SELECT查询,而不是更新和保存查询结果到新表。

相关内容

  • 没有找到相关文章

最新更新