我有一个大查询表,如下所示: ![Table[( https://ibb.co/1ZXMH71 ) 正如您所看到的,大多数值都是空的。我想向前填充这些空值,这意味着使用按时间排序的最后一个已知值。
显然,有一个名为 FILL https://cloud.google.com/dataprep/docs/html/FILL-Function_57344752的函数, 但我不知道如何使用它。
这是我尝试在 Web UI 上发布的查询:
SELECT sns_6,Time
FROM TABLE_PATH
FILL sns_6,-1,0 order: Time
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:语法错误:意外的标识符“sns_6”在 [3: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`
Run Code Online (Sandbox Code Playgroud)
我希望所有列都发生这种情况
您可以在下面的行中添加尽可能多的需要填充的列(显然您需要替换sns_N为真实列的名称
LAST_VALUE(sns_N IGNORE NULLS) OVER(ORDER BY time) sns_N
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2508 次 |
| 最近记录: |