另一个问题是如何在sqlalchemy上使用OVER子句:
但是如何使用ORM呢?我有类似的东西:
q = self.session.query(self.entity, func.count().over().label('count_over'))
Run Code Online (Sandbox Code Playgroud)
q.all()使用以下消息调用时失败:
sqlalchemy.exc.InvalidRequestError:
Ambiguous column name 'count(*) OVER ()' in result set! try 'use_labels' option on select statement
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
你的over语法几乎正确,它应该是这样的:
import sqlalchemy
q = self.session.query(
self.entity,
sqlalchemy.over(func.count()).label('count_over'),
)
Run Code Online (Sandbox Code Playgroud)
文档中的示例:
from sqlalchemy import over
over(func.row_number(), order_by='x')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |