#python #sqlite #sqlalchemy
#python #sqlite #sqlalchemy
Вопрос:
При выполнении следующей функции python для запуска sql-запроса к базе данных sqlite3 я получаю sqlite3.OperationalError: near "(": syntax error
функция python с текстом запроса
def total_docs():
"total documents"
import db
conn, cursor = db.opendb()
cursor.execute('''
SELECT COUNT(a.custId)
FROM (
SELECT
ROW_NUMBER () OVER (
PARTITION BY custId, invoiceId ORDER BY entryDate DESC
) latest_rank , custId, customer, page, invoiceDate
FROM
transactions
) a
WHERE latest_rank = 1
''')
return cursor.fetchone()[0]
Есть ли что-то в том, как execute()
выполняется этот запрос или сам запрос, который не совместим с использованием sqlalchemy для выполнения SQL. Запрос работает, как ожидалось, в клиенте DB (Dbeaver), и поэтому я немного озадачен тем, почему это не работает.
Комментарии:
1. Вероятно, вы используете старую версию sqlite, которая не поддерживает оконные функции. Убедитесь, что вы используете версию 3.25 или новее.
2. @Shawn вот и все! Спасибо.