我有一张table。当我在Num维度中缺少一个值时,我想用前一行的值来替换它。下面是我尝试过的一个例子。我正在使用滞后窗口功能,但不起作用。
CREATE TABLE test(dt text, num INT);
INSERT INTO test VALUES("2011-11-11", 3);
INSERT INTO test VALUES("2011-11-12", NULL);
INSERT INTO test VALUES("2011-11-13", 5);
INSERT INTO test VALUES("2011-11-14", NULL);
INSERT INTO test VALUES("2011-11-15", NULL);
INSERT INTO test VALUES("2011-11-16", 2);
select dt,
case when num is not null then num
else lag(num,1,0) over (order by dt) end
from test
我收到的错误是:OperationalError: near "(": syntax error
,我甚至不确定它是什么意思。任何帮助都将不胜感激。
2条答案
按热度按时间lf5gs5x21#
SQLite 3.25.0版本(2018-09-15)首次增加了对窗口函数的支持。您需要升级您的SQLite二进制文件,或者不使用窗口函数。请参阅https://www.sqlite.org/windowfunctions.html#history
1hdlvixo2#
SQLite中的窗口函数仅在版本3.25.0中引入。作为一种解决办法,您可以使用相关子查询: