You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Timestream的LAST_VALUE是否支持IGNORE NULLS参数?

AWS Timestream中last_value函数的IGNORE NULLS支持问题

AWS Timestream不支持在last_value窗口函数中使用IGNORE NULLS语法,你尝试的两种写法都是Athena(基于Presto)的语法,并不适用于Timestream。

要实现“按deviceId分组,获取到当前行为止的最后一个非空power值”,可以使用以下替代方案:

方案1:使用FILTER子句过滤空值

Timestream支持在窗口函数后添加FILTER子句筛选非空记录,写法如下:

LAST_VALUE(power) FILTER (WHERE power IS NOT NULL) OVER (
    PARTITION BY deviceId 
    ORDER BY time ASC 
    RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS last_non_null_power

方案2:倒序窗口取第一个非空值

通过将时间倒序排列,用FIRST_VALUE获取最新的非空值,等价于原需求的“最后一个非空值”:

FIRST_VALUE(power) OVER (
    PARTITION BY deviceId 
    ORDER BY time DESC 
    RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) FILTER (WHERE power IS NOT NULL) AS last_non_null_power

方案3:子查询关联(适合小数据集)

如果窗口函数方案不符合预期,可通过子查询找到每个时间点之前的最后一个非空值:

SELECT 
    t.deviceId,
    t.time,
    t.power,
    (SELECT power 
     FROM your_table sub
     WHERE sub.deviceId = t.deviceId 
       AND sub.time <= t.time 
       AND sub.power IS NOT NULL
     ORDER BY sub.time DESC 
     LIMIT 1) AS last_non_null_power
FROM your_table t

内容的提问来源于stack exchange,提问作者ADringer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:20:34