BigQuery如何用单条语句为现有表添加计算列Duration?
在BigQuery中为现有表添加并计算赋值新列
BigQuery 不支持单条语句同时完成添加列和基于现有列计算赋值的操作,你需要分两步执行:
- 首先添加空的
Duration列:
ALTER TABLE `total_bike` ADD COLUMN Duration INT64;
- 然后用
UPDATE语句计算并填充该列的值:
UPDATE `total_bike` SET Duration = TIMESTAMP_DIFF(ended_at, started_at, MINUTE) WHERE TRUE; -- WHERE TRUE 会更新表中所有行
补充说明
- 若表数据量极大,可考虑分批更新以降低单次操作的资源消耗,但常规场景下上述两步操作已足够高效。
TIMESTAMP_DIFF返回值为INT64类型,将列类型定义为INT64更匹配BigQuery的类型体系,能避免潜在的类型转换问题。
内容的提问来源于stack exchange,提问作者Francisco LC
相关产品推荐
相关产品推荐

