在sqlite中使用max时光标没有填充

时间:2018-11-13 20:57:51

标签: python sqlite

我有一个类似以下的数据库

datetime    value
date1        200
date2        230
date3        210
date4        240
date5        220

我找到要动态查找上述两行最大值的列的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使用order还是有更好的解决方案?

1 个答案:

答案 0 :(得分:0)

谢谢@Shawn

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

解决了问题!