此处是因为 where 语句先于 select 语句执行,所以筛选出的 9:31m 的数据只有一条,其 prev 为空值,计算后结果为空。详见 SQL 执行顺序的文档。
1.30.21 / 2.00.9 版本后支持使用 case when 语句,可参考下述脚本对 SQL 语句进行修改:
time = 09:00m + 1..60 b_sum = 1..60 t = table(time, b_sum) update t set b_sum = (case when time == 09:31m then b_sum + prev(b_sum) else b_sum end)
若为旧版本,可以先计算出更新值,再进行更新。