【发布时间】:2021-03-17 12:15:45
【问题描述】:
在 sqlite3 中有以下代码创建表
import sqlite3 as sq
con = sq.connect('test2.db')
q = """
create table if not exists test (ip TEXT, time INTEGER, value INTEGER);
insert into test (ip, time, value) values("192.168.1.1", 1607190826, 3010);
insert into test (ip, time, value) values("192.168.1.1", 1607190827, 3012);
insert into test (ip, time, value) values("192.168.1.1", 1607190828, 3019);
insert into test (ip, time, value) values("192.168.1.2", 1607190829, 510);
insert into test (ip, time, value) values("192.168.1.2", 1607190829, 515);
insert into test (ip, time, value) values("192.168.1.2", 1607190829, 530);
"""
con.executescript(q)
con.commit()
我像这样在sqlite中使用滞后函数
qw = """SELECT ip, lag(value, 1, 0) OVER (ORDER BY ip) val2 from test"""
f = con.execute(qw)
for i in f:
print(i)
但我收到以下错误代码。
OperationalError: near "(": syntax error
更新
它适用于 python 3.7。
python 3.6 还是有问题
【问题讨论】:
-
执行
select sqlite_version();以检查您的 SQLite 版本。窗口函数是在 3.25.0 版本中引入的。 -
版本是'3.22.0'。
标签: python sql sqlite subquery window-functions