我有一个大查询表,看起来像这样:![Table [(https://ibb.co/1ZXMH71)如您所见,大多数值都是空的。我想向前填充这些空值,这意味着使用按时间排序的最后一个已知值。
显然,有一个名为FILL的函数但是我不知道如何使用它。
这是我尝试过发布到Web UI的查询:
SELECT sns_6,Time FROM TABLE_PATH FILL sns_6,-1,0 order: Time
我得到的错误是:语法错误:[3:6]处出现意外的标识符“ sns_6”,我想要的是获取一个新表,其中sns_6列填充有最后一个已知值。
另外,我希望所有列都可以使用此功能,但是由于fill仅支持单个列,因此,我现在必须遍历所有列。如果有人知道如何进行迭代,那将是一个很大的收获。
以下是BigQuery标准SQL
我想向前填充这些空值,这意味着使用按时间排序的最后一个已知值
#standardSQL SELECT time LAST_VALUE(sns_1 IGNORE NULLS) OVER(ORDER BY time) sns_1, LAST_VALUE(sns_2 IGNORE NULLS) OVER(ORDER BY time) sns_2 FROM `project.dataset.table`
我希望所有列都发生这种情况
您可以在下面的行中添加所需填充的列数(显然,您需要替换sns_N为真实列的名称)
sns_N
LAST_VALUE(sns_N IGNORE NULLS) OVER(ORDER BY time) sns_N