Google cloud platform 大查询-将整型列转换为浮点型
我想在大查询中将名为Google cloud platform 大查询-将整型列转换为浮点型,google-cloud-platform,google-bigquery,Google Cloud Platform,Google Bigquery,我想在大查询中将名为lauder的列从int转换为float。我的表名为历史。我已经能够使用这个SQL查询了 SELECT *, CAST(lauder as float64) as temp FROM sandbox.dailydev.historical 查询可以工作,但更改不会保存到表中。我该怎么办?是否将它们保存在临时表中,以便以后使用 您可以将其保存到如下所示的临时表中,然后参考“temp” 你的说法是正确的。但大查询中的表和列是不可变的。您需要运行查询并将结果保存到具有修改列的
lauder
的列从int
转换为float
。我的表名为历史
。我已经能够使用这个SQL查询了
SELECT *, CAST(lauder as float64) as temp
FROM sandbox.dailydev.historical
查询可以工作,但更改不会保存到表中。我该怎么办?是否将它们保存在临时表中,以便以后使用 您可以将其保存到如下所示的临时表中,然后参考“temp”
你的说法是正确的。但大查询中的表和列是不可变的。您需要运行查询并将结果保存到具有修改列的新表中 点击“更多”>“查询设置”,在“目的地”中选择“为查询结果设置目的地表”,填写表名。您甚至可以选择是否要用生成的表覆盖现有表 设置好这些设置后,只需像往常一样“运行”查询
不能更改表中的列数据类型 您可以做的是:
选项2和3的概述很好,包括我在上面分享的链接中的优点和缺点。您可以使用创建或替换表将结构更改以及数据写入同一个表中:
CREATE OR REPLACE TABLE sandbox.dailydev.historical
AS SELECT *, CAST(lauder as float64) as temp FROM sandbox.dailydev.historical;
在本例中,historic
表将用一个附加列temp
重新构造
如果您使用
选择*
,您将扫描整个表,因此将产生成本。如果表很小,这不应该是个问题,但如果表足够大,可以考虑成本-下面是另一种方法:
谢谢如何直接存储在当前表中?对不起,我不确定是否得到了它。是否要将新数据保存在“历史”表中?@Pierre56,您需要更改您的表并插入到表中-您可以按照下面给出的SKM答案进行操作
CREATE OR REPLACE TABLE sandbox.dailydev.historical
AS SELECT *, CAST(lauder as float64) as temp FROM sandbox.dailydev.historical;