Курсор не заполняется при использовании max в sqlite - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть база данных, подобная следующей

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

Я узнаю строку для столбца, для которого я хочу динамически найти максимальное значение для 2 строк выше. Скажите, что я нашел 4 для даты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 кортежа в списке).Могу ли я не использовать лимит с Максом?В чем проблема?Должен ли я сделать другой столбец int, эквивалентный rowid, для правильного запроса и использовать порядок по numberingColumn, или есть лучшее решение?

1 Ответ

0 голосов
/ 14 ноября 2018

Спасибо @ Шон

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

решил проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...