猿问

在sqlite中使用max时光标不填充

我有一个像下面这样的数据库


datetime    value

date1        200

date2        230

date3        210

date4        240

date5        220

我找出我想动态找出上面 2 行的最大值的列的 rowid 假设我为 date4 找到了 4,我想计算值 230,210 和 240 的最大值,即 240


我给出以下命令


c.execute("SELECT MAX(value) FROM TABLE LIMIT "+str(rowid-2)+",3")

print(c.fetchall())

问题是游标没有填充并返回一个空列表


c.execute("SELECT value FROM TABLE LIMIT "+str(rowid-2)+",3")

print(c.fetchall())

它返回 3 行(列表中的 3 个元组)的正确值。我可以不使用 max 限制吗?问题是什么?我是否必须制作另一个等效于 rowid 的 int 列才能很好地查询并通过 numberingColumn 使用订单,还是有更好的解决方案?


慕运维8079593
浏览 182回答 1
1回答

牧羊人nacy

c.execute("SELECT MAX(TEMPVALUE) FROM (SELECT value AS TEMPVALUE FROM TABLE LIMIT "+str(rowid+2)+",3)")解决了问题!
随时随地看视频慕课网APP

相关分类

Python
我要回答