gpt4 book ai didi

python - 测试的 SQL 脚本上的 SQLite3 语法错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:33 27 4
gpt4 key购买 nike

我正在使用 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

最佳答案

窗口函数支持为 first added to SQLite根据官方文档,发布版本为 3.25.0 (2018-09-15)。

使用 Python 时,您使用的是 Python SQLite3 客户端库(随 Python 一起分发),而不是系统安装的 SQLite3。对于 Python 2.7,版本为 3.11.0,低于您所需的版本。

您可以尝试使用较新的 SQLite3 客户端库,如 suggested by these answers .

关于python - 测试的 SQL 脚本上的 SQLite3 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57253263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com