我正在使用python 3.6.4和sqlite3 2.6.0在sqlite 3.27.2文件中查询表中最近的连续日期。
我尝试使用vscode调试器获取实际的sql字符串,并使用DB Browser for SQLite对其进行测试。它按我的预期工作。
代码如下:
sql = 'WITH \
dates(cast_date) AS (\
SELECT DISTINCT play_date\
FROM TimeTable\
),\
groups AS (\
SELECT\
date(cast_date, \'-\'||(ROW_NUMBER() OVER (ORDER BY cast_date))||\' days\') AS grp,\
cast_date\
FROM dates\
)\
SELECT\
MIN(cast_date) AS date_start,\
MAX(cast_date) AS date_end\
FROM groups GROUP BY grp ORDER BY 2 DESC LIMIT 1'
cursor = conn.cursor()
result = []
try:
cursor.execute(sql)
result = cursor.fetchone()
except sqlite3.OperationalError:
FileLogger.exception('Exception at '+__file__+' '+__name__)
发生异常:
cursor.execute(sql)
sqlite3.OperationalError: near "OVER": syntax error
答案 0 :(得分:0)
窗口功能支持的发布版本为3.25.0
(2018-09-15),first added to SQLite。
使用Python时,您使用的是Python SQLite3客户端库(随Python一起分发),而不是系统SQLite3安装。对于Python 2.7,版本为3.11.0
,低于您所需的版本。
您可以尝试使用更新的SQLite3客户端库,例如suggested by these answers。