回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试着用一个windows函数,这样我就可以从每个永恒的_id中得到最后一个结果,而我只是想让一个windows函数正常工作。无论是连接到引擎并从中进行选择,还是从中启动会话和查询,都会看到错误。在</p>
<p>下面是我尝试的方法(“初始化会话并从中查询”方法):</p>
<pre><code>engine = create_engine('sqlite:///../../app.db')
sessionfactory = sessionmaker(bind=engine)
s = sessionfactory()
myquery = s.query(models.case.id,
models.case.eternal_id,
func.count().over(
partition_by=models.case.eternal_id).label('cnt'))
print myquery.all()
</code></pre>
<p>我得到的错误是:</p>
^{pr2}$
<p>如果我从查询中删除<code>func.count().over(partition_by=models.case.eternal_id).label('cnt')</code>,那么一切都会完美运行。有人知道我为什么会出错吗??在</p>
<p>如果有帮助的话,下面是一个模型:</p>
<pre><code>from app import db
class case(db.Model):
id = db.Column(db.Integer, primary_key=True)
eternal_id = db.Column(db.Integer, db.ForeignKey('case_eternal.id'))
eternal = db.relationship('case_eternal', back_populates='case_sids')
def __repr__(self):
return '<Case %r>' % (self.id)
class case_eternal(db.Model):
id = db.Column(db.Integer, primary_key=True)
case_sids = db.relationship('case', back_populates='eternal')
</code></pre>