在带有sqlalchemy的嵌套sqlite3查询中使用ROW_NUMBER()会导致sqlite3.OperationalError:near“(”:语法

2024-10-03 09:15:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在执行以下python函数对sqlite3数据库运行sql查询时,我收到一个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)中按预期工作,因此我有点不理解为什么这不起作用。在


Tags: 函数from数据库executedbsqlbyselect